Ahogy már említettem más fórumokon, tegnap délután és ma kaptam egy elég csúnya terhelést, amit csak ma reggel tudtam megfejteni.
A jelenség annyi volt, hogy rövid idő alatt a teljes szerverem loadja felment 40-60-as érték köré, emellett jópár Apache és MySQL processzt láttam futni. Mivel tegnap munkaidőben az elsődleges cél a szolgáltatás fenntartása volt, nem annyira néztem utána, hogy pontosan mi és hol csinált mit. Ma reggel viszont nem mentem el mellette, és az eredmény meglepett: a photo.lipilee.hu engine-je, ami adatbázisban tárolja a referrerek információit, rövid idő alatt több, mint 400.000 (igen: több, mint négyszázezer) referralt (tehát kvázi hitet) kapott. Ezzel kb. egy időben a referrerek listáját le is kérték. Az eredmény: az adatbázisban az erre vonatkozó tábla mérete 15 MB fölé nőtt a sok rekord miatt, és az egész procedúra (INSERT-ek és SELECT-ek tömege) értelemszerűen nem kicsit terhelte meg az adatbázisszervert. A diagnózis: klasszikus (lassan már annak vehető) referrer spam támadás áldozata lettem.
Nem tudom, pontosan mióta ment a tábla feltöltése, de a dolog tegnap lett annyira kritikus, hogy bizonyos processzeket thrashing-közeli állapotba helyezzen.
Első dolgom a referrerek táblájának kitakarítása volt. Ügyféllel ezt nem tenném (ó dehogynem! – mondja bennem a BOFH), de mivel saját oldalról van szó, tudtam, hogy soha nem volt és nem is lesz szükségem erre az információra, ami kell, azt biztosítják az oldalon futó statisztikák. Érdekes adat, hogy percek alatt újra száz fölé ment a betöltött referrer rekordok száma.
Átmeneti („mocskos hack”, illetve még az se) megoldásként kigyaktam a motorból az egész referreres történetet, hisz, mint mondtam, nincs rá szükségem. (Olyannyira nincs rá szükségem, hogy a logjaimból se fogom kitakarítani a már odakerült csúnyaságokat.) Ez a jelenség egyébként kicsit hasonló a MovableType comment spam támadásokhoz, azzal a különbséggel, hogy itt a blacklistet nem a postolásokra, hanem a site teljes elérésére kell bevezetni: ha spammer site a látogató, meg se nézheti az oldalt. Ez van, 2005-öt írunk.