Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.

Antispam Codeschnippsel ok oder zu Serverlastig

Ajax, Hijax, Microformats, RDF, Markup, HTML, PHP, CSS, MySQL, htaccess, robots.txt, CGI, Java, Javascript usw.
Neues Thema Antworten
Ice Man
PostRank 9
PostRank 9
Beiträge: 2477
Registriert: 04.06.2003, 19:16

Beitrag von Ice Man » 20.01.2007, 21:44

Zuersteinmal, es geht um ein phpbb Forum.
Ist kein kleines, deswegen scheinbar interesant für die Spammer.
Einige Bereiche wie Bugs & Feedback hab ich für Gäste frei gegeben.

Da ich nun genug von dem Viagra Spam hab, hab ich mir was überlegt.
Ich prüfe bei jedem Gast, den geposteten text.

Code: Alles auswählen

############
$check = mysql_query("SELECT spam,wertung FROM spam_filter order by id ");
while ($daten=mysql_fetch_array($check  )):  

$a_spam2 = $daten['wertung'] *( substr_count ($pruf_message, "".$daten['spam'].""));

$a_spam  = $a_spam + $a_spam2;
	 
endwhile; 	 

if ($a_spam >4) 
{.......
Erklärung, in der Datenbank sind Wörter wie Viagra, Casino, Trademol, .ru und www, und "URL"
Für jedes Wort gibt es eine Wertigkeit von 1-5.
Also Viagra = 5
www = 2

So kann man z.b. 2x als gast www posten, ohne das es als Spam erkannt wird, aber sobald einmal Viagra vorkommt, dann ist es aus.
In der Datenbank sind nun aktuell 20 "Bad Words" drin.
Bei jedem Gäste Posting, wird der Beitrag 20x durch die schleife gejagt, und auf die Bad Words geprüft.

Ist das nun sehr Serverlastig, oder ist das wenig ?
Zumindest das Spamaufkommen ist um mind. 50% zurück gegangen.
Damit es auf knapp 100% geht, wollte ich noch paar Wörter in die Liste rein setzen, hab aber Angst, das der Server in die Knie geht.

Falls eine eine Verbesserungsidee hat, dann her damit :)

Anzeige von ABAKUS

von Anzeige von ABAKUS »


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

Michael
PostRank 8
PostRank 8
Beiträge: 808
Registriert: 04.01.2004, 20:23
Wohnort: Herne

Beitrag von Michael » 20.01.2007, 22:37

Ich finde bot-trap.de eine gute Idee.

Gruß
Michael

cren
PostRank 6
PostRank 6
Beiträge: 379
Registriert: 04.06.2005, 16:30

Beitrag von cren » 20.01.2007, 22:38

Wenn der Code nur beim Posten ausgeführt wird und das Forum nicht grad hunderte Postings pro Minute hat, dürfte es so gut wie keine Auswirkungen auf die Performance haben.

Anzeige von ABAKUS

von Anzeige von ABAKUS »

SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


Ice Man
PostRank 9
PostRank 9
Beiträge: 2477
Registriert: 04.06.2003, 19:16

Beitrag von Ice Man » 20.01.2007, 23:12

Michael hat geschrieben:Ich finde bot-trap.de eine gute Idee.

Gruß
Michael
Ich wusste irgendwie das diese Antwort kommt ;)
Ich will aber nun mal nix fremdes nutzen.
Hier weiß ist was Sache ist :D

@ cren

danke, das beruhigt mich :)
Dann mache ich mich mal an die letzten 50 % :D

Zumindest funktioniert mein Codeschnippsel besser, als die meisten Sachen die man downloaden kann....

oldInternetUser
PostRank 9
PostRank 9
Beiträge: 1250
Registriert: 19.03.2005, 12:52

Beitrag von oldInternetUser » 21.01.2007, 00:23

Ice Man hat geschrieben:

Code: Alles auswählen

############
$check = mysql_query("SELECT spam,wertung FROM spam_filter order by id ");
Da das ohnehin dein eigener Server ist, spielt es keine Rolle, ob Du dein Script oder die Datenbank pflegst.

Damit genügt es, die Kombinationen spam/wertung direkt als lokalen Array abzulegen - dann entfällt der Zugriff auf die Datenbank und der damit verbundene Kontextwechsel.

Ice Man
PostRank 9
PostRank 9
Beiträge: 2477
Registriert: 04.06.2003, 19:16

Beitrag von Ice Man » 21.01.2007, 11:03

Den hab ich drin, und trotzdem Spam ;)
Der bringt gegen manuellen Spam überhaupt nix.
Da es ja keine Bots sind, sondern Menschen, die das Forum mit ihren schwachsins billige Seiten vollspammen :cry:

Boa
PostRank 9
PostRank 9
Beiträge: 1170
Registriert: 11.11.2003, 00:19
Wohnort: Bremen

Beitrag von Boa » 21.01.2007, 11:23

Gute Idee das so zu machen.

Ice Man
PostRank 9
PostRank 9
Beiträge: 2477
Registriert: 04.06.2003, 19:16

Beitrag von Ice Man » 21.01.2007, 12:03

@ oldInternetUser
Das ist natürlich auch eine gute Idee, da bin ich selbst nicht drauf gekommen.
Da würde zumindest die MqSql Belastung wegfallen.

Danke, super Tip, werd ich doch glatt mal umsetzen :)

Ice Man
PostRank 9
PostRank 9
Beiträge: 2477
Registriert: 04.06.2003, 19:16

Beitrag von Ice Man » 21.01.2007, 13:41

Falls es jemand interessiert, hier die Version ohne MySql :)
Geht schnell und funktioniert bestens :)

Code: Alles auswählen

// alles klein schreiben
$pruf_message = mb_strtolower($post_message);   
	  
// Wörter für Spam Filter
$spam     = array(
".info", 
".ru", 
"/a>", 
"blogspot.com", 
"casino", 
"http", 
"kostenlos-porn.info", 
"phentermine", 
"porn-movie-free.info", 
"pornotubee", 
"tramadol", 
"valium", 
"viagra", 
"www",
); 

// Wertigkeit des Spam
$wertung  = array(2,5,2,5,3,1,5,5,5,5,1,5,5,1);

// Anzahl Einträge
$max      = sizeof ($spam); 

for &#40;$i = 0;$i < $max;$i++&#41;&#123; 

 $a_spam2 = $wertung&#91;$i&#93; *&#40; substr_count &#40;$pruf_message, "".$spam&#91;$i&#93;.""&#41;&#41;;
 $a_spam  = $a_spam + $a_spam2;

&#125;

 if &#40;$a_spam >4&#41; 
&#123; 
die&#40;"Spam Versuch wurde erkannt <br> Versuchts woanders ihr Kasper."&#41;;
 &#125;
Funktion, der eingetragene Text wird zuerst klein geschrieben, dann auf die Wörter in der Spamfilterliste geprüft. Ist die Summe der einzelnen Prüfungen >5, dann wird das Script mit der Fehlermeldung beendet. Die einzelnen Wertigkeiten sind wichtig, da ja Gäste auch mal einen Link posten. So kann man individuell einstellen, ab wie viel Links oder bestimmten Wörtern es sich im Spam handelt. Vorteil, diese Beiträge werden erst gar nicht in die DB eingetragen. Somit muss man kein Spam löschen :)

Boa
PostRank 9
PostRank 9
Beiträge: 1170
Registriert: 11.11.2003, 00:19
Wohnort: Bremen

Beitrag von Boa » 21.01.2007, 15:27

"www",
ist das Komma da zuviel?
Versuchts woanders ihr Kasper
schön gesagt

Ice Man
PostRank 9
PostRank 9
Beiträge: 2477
Registriert: 04.06.2003, 19:16

Beitrag von Ice Man » 21.01.2007, 15:30

stimmt, das Komma kann weg, danke für den Hinweis :)

root
PostRank 4
PostRank 4
Beiträge: 172
Registriert: 13.09.2006, 18:40

Beitrag von root » 21.01.2007, 19:58

Thumbs Up - danke Ice Man!

Antworten