joe: AntiSpam: Erkennung von Spam

Beitrag lesen

Hi,

ich soll auf einer Seite eines Bekannten einen Spam-Schutz einbauen.
Der hat pro Tag mehrere tausend GB-einträge und User bekommen.

Zuerst versuchte ich es mit einem PostKey:
1. Ich lege für jede IP einen Eintrag in einer 'IP-table' an
2. Bei jeder Anfrage wird eine neuer PostKey generiert (32 Zeichen)[a-zA-Z0-9]
3. Bei einer POST-Request muss der PostKey angegeben sein und mit dem in der DB für diese IP-gespeicherten übereinstimmen. Wenn nicht wird die POST-Anfrage erbarmungslos gelöscht. unset($_POST);

Brutal, aber wirksam, doch wenn man jetzt zuerst eine GET-Request macht den PostKey rausliest und denn mitschickt gehts wieder, aber eben nicht mehr ganz so schnell. Der Spam hat um rund 15% abgenommen.

Gut, ein Captcha?
Nun ja ein Captcha wäre mit Sicherheit eine Lösung. Bestimmte Bereiche habe ich damit auch schon abgesichert.
Aber da gibt es leider ein Problem, ja sonst hätte ich mir diesen Thread sparen können. Die Captcha Bereiche wurden nur noch mit < 50 Spameinträgen vollgemüllt :).
Wollten wahrscheinlich das Captcha testen.

Mein Bekannter hat 2 Bereich die von Programmen/Maschinen mit Infos gefüttert werden. Ja Spam-Bots sind auch Programme/Skripte.

Der Postkey ist kein Problem da diese eh erst eine GET-Anfrage starten Infos von der Seite holen, diese verarbeiten und dem Server per POST eine Antwort senden.

Also ein Captcha scheidet wohl aus. Wenn die den auswerten könnten wären die Programmierer bei denen Halbgötter oder ich ein Idiot ;-)

Gibt es eine Möglichkeit in einer MySQL Tabelle im Nachhinein zu sagen, jawohl die Einträge id > 50 && id < 200 ist Spam also weg damit?
Wie kann ich wirksam Spam erkennen? An der IP? Die haben Einwahl-IP und pro Tag sind es mindestens 2 verschiedene. Das höchste waren 17 verschieden Spam-IPs am Tag.

Die die POSTen dürfen haben auch nicht unbedingt eine Statische IP, leider.

Also was ich brauche is PHP-Code der SPAM im nachhinein in einer MySQL tabelle erkennt und löscht.
Es würde auch eine Lösung gehen die während dem Spammen feststellt, nein du Spammst du schickst mir keine gültige POST-Request mehr? Aber dies ist viel umständlicher?!

joe

PS: die Adresse darf/will ich aus bestimmten Gründen hier nicht nennen ich hoffe das dies auch nicht erforderlich ist.