Seite 1 von 2

Einfacher Spam Schutz mit PHP

Verfasst: 31.07.2006, 09:55
von Ice Man
Ich hab ja auch ein phpBB Forum.
Alle unterrubriken bis auf eines sind für Gäse tabu.
Das offene ist für Bugs, da teilen gäste Problem mit, also Login oder andere Probleme.

Seit kurzen spammen da welche aus China mit ihren Drugs Seiten rum.

Immer das gleiche Schema, 20 URLs oder mehr.
Nun hab ich mir gedacht, ich bei bei den Gästen eine Abfrage ein.

Kommt in dem Beitrag mehr als 5x diese zeichenfolge vor "www" dann wird der Beitrag nicht zugelassen.

Hat jemand ne Idee, wie man in einem Text zählt, wie oft dieser Teil vorkommt ?

danke :)

Verfasst:
von

Hochwertiger Linkaufbau bei ABAKUS:
  • Google-konformer Linkaufbau
  • nachhaltiges Ranking
  • Linkbuilding Angebote zu fairen Preisen
  • internationale Backlinks
Wir bieten Beratung und Umsetzung.
Jetzt anfragen: 0511 / 300325-0

Verfasst: 31.07.2006, 10:11
von MonikaTS

Verfasst: 31.07.2006, 10:29
von Ice Man
weil ich nicht ne .htaccess mit 200 Einträgen haben wollte :)

Verfasst:
von
Content Erstellung von ABAKUS Internet Marketing
Ihre Vorteile:
  • einzigartige Texte
  • suchmaschinenoptimierte Inhalte
  • eine sinnvolle Content-Strategie
  • Beratung und Umsetzung
Jetzt anfragen: 0511 / 300325-0

Verfasst: 31.07.2006, 10:52
von marc75
bau doch eine kleine If() Kontrolle ein, wo du auf den chinesischen IP Bereich prüfst, und alle Posts aus China einfach nicht speicherst.

Verfasst: 31.07.2006, 11:02
von Ice Man
Ich hab es vorher mit IP Sperren per .htaccess Probiert.
Aktuell sind schon 20 IPs drin.

Wie man sieht, bringt das alles nicht viel.
Deshalb will ich was haben, was ich nicht ständig anpassen muss.

Deshalb ja die Idee mit dem Zählen der "www" im Text.
Da diese ja immer vorkommen.
Also warum jedesmal nachträglich die IP sperren, wenn man so einfach den Spam sperrt ;)

Verfasst: 31.07.2006, 11:27
von Ice Man
So, habs hinbekomme

$spam = substr_count ($post_message, "www");

Es prüft, wie oft das "www" vorkomt.
Bei mehr als x mal in einem Beitrag, wird es als Spam erkannt.
Danch wird der Beitrag einfach nicht in die DB eingetragen.

Somit kein Spam und kein Ärger ;)

Verfasst: 31.07.2006, 12:30
von [btk]tobi
Oder einfach die Feldnamen umbenennen und den Bot noch ein bisschen nervern. Ich hab dazu mal einen Mod geschrieben.
Seit dem ich das in meine Foren eingebaut hab, hab ich Ruhe.

Verfasst: 31.07.2006, 12:41
von marc75
Aktuell sind schon 20 IPs drin.
ich meinte ja auch nicht, das du jede einzelne IP angeben solltest. Einfach ganz China aussperren, oder brauchst du die?

Verfasst: 31.07.2006, 13:33
von 800XE
Ice Man hat geschrieben:$spam = substr_count ($post_message, "www");
genau so mach ichs auch .....
... aber nicht mit wewewe sondern hatetepe://

externe Links brauchen das hate.... aber eine 3w wird nicht zwingend gebraucht (und bei SUbdomains auch unüblich)

Problematisch ist natürlich wenn du eine Automatische URL erkennung hast die auf 3w reagiert


und dann ist da noch die MÖglichkeit:
habe letzte woche ein hidden Timestamp Feld eingebaut

$ts=time();
$content.="<input type='hidden' name='post_ts' value='$ts'>";

Angeblich kommt der Post von meiner Site ... laut referer, aber das Timestampfeld ist leer ... also ist der Ref gefakt

Verfasst: 31.07.2006, 13:53
von ole1210
weil ich nicht ne .htaccess mit 200 Einträgen haben wollte
Das Programm arbeiten vollkommen ohne htaccess.

Was würde denn gegen eine htaccess mit 200 Eintragen sprechen? Meine ist aktuell knapp 100kB groß. Verursacht keinerklei Probleme.

Verfasst: 31.07.2006, 14:51
von JR-EWING
Vielleicht hilft dir ja auch sowas in der htaccess...

Code: Alles auswählen

# Filter Exploids
RewriteCond %&#123;THE_REQUEST&#125; "^&#40;&#40;GET|POST|HEAD&#41; &#91;^/&#93;|CONNECT&#41;" &#91;NC&#93;

# Weiterleitung auf was weiß ich was
RewriteRule .* /spider-trap/forbid.php &#91;L&#93;
[/code]

Verfasst: 31.07.2006, 17:58
von Graccem
Ice Man hat geschrieben:So, habs hinbekomme

$spam = substr_count ($post_message, "www");

Es prüft, wie oft das "www" vorkomt.
Bei mehr als x mal in einem Beitrag, wird es als Spam erkannt.
Danch wird der Beitrag einfach nicht in die DB eingetragen.

Somit kein Spam und kein Ärger ;)
Hat einen kleinen Schönheitsfehler. WwW wird nicht erkannt. Du musst also vorher mb_strtolower machen, damit substr_count funktionieren kann.

Verfasst: 31.07.2006, 18:13
von Airport1
oder gleich das 1. in meiner signatur nutzen, ist pflegeleichter, musst fast gar nix mehr tun, nur noch boese ips zentral melden.. statt dass jeder sein kleines sueppchen kocht ;)

Verfasst: 31.07.2006, 18:21
von Ice Man
Naja, ich werde es mal paar Wochen genau beobachten, ob meine Lösung funktioniert. Jedenfalls seit dem Null Spam, aber des sind ja erst paar Stunden :)

Verfasst: 31.07.2006, 21:18
von 800XE
Ice Man hat geschrieben:Naja, ich werde es mal paar Wochen genau beobachten, ob meine Lösung funktioniert. Jedenfalls seit dem Null Spam, aber des sind ja erst paar Stunden :)
naja, die (bzw der, möglicherweise liest der ja hier mit ... oder im WMP) merken das es nicht mehr klappt und ändern dann ihr vorgehen ...

.. als ich diesen Filter ins Gästebuch einbaute, habe ich hier oder im WMP noch drüber geschrieben, das IE auf 2 URLs beschrenkt wird und Andere weiterhin mehr dürfen
Ergebnis
der Useragent des Spammers war auf einmal nicht mehr Windows+IE sondern TuringOS


Das beste ist am Ende wohl eine halbautomatische Moderation
Einträge ohne URL (auch nicht im Websitefeld) weredn eingetragen .... alles Andere, auch wenn im Eintrag keine URL aber eben eine Website Angegeben, einen Schlater setzen und man muß den Eintrag erstmal freischalten, so das auch nicht kurzfristig SpamURLs im GB stehen