spam áradat elleni harc

Az utóbbi időben, ahogy a google egyre jobban megismerte a blogomat, elindult a várva várt spamáradat a hozzászólásokba. Egy ideig azzal kísérleteztem, hogy mi van akkor ha a spammer fix wordpress felületet ismerve postolja el a szöveget. A bemenő form nevek megváltoztatása úgy tűnt, hogy nem túl sikeres megoldás, így más megoldás után kellett nézni. A következő ötletem az volt, hogy aki az oldalra üzenetet akar küldeni, az postoljon kétszer. Ilyet máshol még nem láttam és bíztam abban, hogy eredményes lesz. A megoldás valahogy úgy nézett ki, hogy a teljes post tömb tartalmából készített md5 hash-t elmentettem a session tömbbe, és ha már volt egyszer benne akkor beengedtem az üzenetet ha még nem akkor ismétlést kértem.
Rá pár napra észrevettem, hogy -igaz csekély mértékben- de egy bizonyos fajta spam még mindig érkezik. Akkor azt hittem a megoldásom nem eredményes, de most már tudom, hogy nem az a megoldás is lehet hatásos. Ezt akkor nem tudtam, így kerestem tovább, hogy mi lehet a hatásosabb védelem.
Következő “ötlet”, egy már ismert, viszonylag bevett védelem lett: Tegyél fel egy kérdést, amire ha jól válaszol, akkor engeded be az üzenetet. Ez lehet találós kérdés, matematika vagy egyéb mód (pl kitehettem volna egy képet rajta egy almát is). Biztos ami biztos, ha már ott voltam megcsináltam azt is, hogy jquery küldje el az üzenetet (ezt egyébként is akartam korábban).
Ez sem volt hatásos. Egy bizonyos ip címről továbbra is érkezett spam. De ekkor már kételkedtem abban, hogy a megoldásom lenne hatástalan, lévén, hogy magyar a kérdés és a válasznak is annak kell lennie, valahogy máshogy jön be az üzenet. Mivel az IP cím nem változik, tehettem volna azt hogy apacheból kitiltom az ip-t aztán csináljon amit akar, de mégis kíváncsi voltam, így nem ezt a módot választottam.
A logok átnézése után (nem kellett nagyon böngészni) ezt találtam:

user@merlin:~$ cat /var/log/apache2/blog.connor.hu_access.log | grep 82.146.53.67
82.146.53.67 - - [18/Mar/2007:07:12:22 +0100] "POST /2007/01/01/2006-volt-2007-lesz/trackback/ HTTP/1.1" 200 78 "-" "-"
82.146.53.67 - - [18/Mar/2007:08:14:03 +0100] "POST /2007/01/01/2006-volt-2007-lesz/trackback/ HTTP/1.1" 200 78 "-" "-"
82.146.53.67 - - [18/Mar/2007:15:15:23 +0100] "POST /2007/01/01/2006-volt-2007-lesz/trackback/ HTTP/1.1" 200 149 "-" "-"
82.146.53.67 - - [18/Mar/2007:15:46:12 +0100] "POST /2007/01/01/2006-volt-2007-lesz/trackback/ HTTP/1.1" 200 149 "-" "-"
82.146.53.67 - - [18/Mar/2007:16:33:56 +0100] "POST /2007/01/01/2006-volt-2007-lesz/trackback/ HTTP/1.1" 200 149 "-" "-"

És megvan! A trackback-on keresztül küldte el az üzenetet. Viszont itt már nem lehet akárhogy blokkolni a folyamatot, ha meg akarom tartani a funkciót. Valami más megoldást kell találni. Egyenlőre betettem egy fekete listát a küldő ip címével, de mivel hamisítható a REMOTE_ADDR így kizárt, hogy végső és jó megoldás lenne. De ezen elég akkor törpölni ha hatástalan lesz az is. Így tűnik a trackbackra spammelés még nem olyan elterjedt mód a spammerek körében.
Ím a kód (wp-trackback.php #8):

$black_list = array(
  'ipcim',
  'ipcim2',
  'ipcim3',
  );

if (in_array($_SERVER['REMOTE_ADDR'], $black_list)) exit;

One thought on “spam áradat elleni harc

Leave a Reply

Your email address will not be published. Required fields are marked *

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.