woida schrieb
#giggle#
Denk mal scharf nach:
Ich hab dir mal das "$temp" in den Vergleich eingesetzt:
if (strpos(strtolower($saveData['firstname']),"Rulez") > 0
Siehst dus?
Ich kann kein PHP, kannst du mir einfach die "Lösung" geben? Danke.
Für "email" habe ich es analog gemacht, da klappt es aber auch!?
Man muss nur entweder
a) den Quellcode lesen und die fett markierten Wörter anschauen. strtolower heißt wohl "string to lower", also einen String in Kleinbuchstaben umwandeln und das beißt sich mit dem großen "R" in "Rulez"
b) einfach mein Posting komplett lesen
Die Suchbegriffe kann man einfach erweitern und müssen klein geschrieben werden
Für beide Punkte brauchst du keine PHP Kentnisse.
if (strpos(strtolower($saveData['firstname']),"Rulez") > 0
Guggst Du:
strtolower($saveData['firstname']) Setzt den String $saveData['firstname'] in Kleinbuchstaben um, dann wird mit strpos auf das Vorkommen des Suchstrings "Rulez" geprüft. Macht hier aber keinen Sinn, da die Variable $saveData['firstname'] für die Abfrage in Kleinbuchstaben gewandelt wurde. Rulez (mit großen "R") kann also nicht gefunden werden ...
Sebastian
An was ich mir jetzt noch die Zähne ausbeisse ist ein schöner Hinweis, dass der Eintrag nicht gespeichert wurde, weil .... ungültige Zeichen im Kommentar.
Momentan sieht's ja für den Besucher so aus, als ob der Eintrag eingetragen wurde nur nicht angezeigt wird.
Gibt's da schon eine Überlegung?
Sebastian
Ich habs mir auch nur kurz angeschaut, aber im Prinzip gibts 2 Möglichkeiten:
1. Du machst den Vergleich in checkForm() und kannst eine Fehlermeldung übergeben, dann wird der Eintrag aber auch nicht gespeichert
2. Du fügst nach der Abfrage "if ($insert) {" eine weitere Abfrage ein, ob $deleted auf 1 gesetzt wurde und wenn ja kannst du in
$markerArray['###FORM_ERROR###'] und $markerArray['###FORM_ERROR_FIELDS###'] eine Fehlermeldung schreiben.
woida schrieb
Ich habs mir auch nur kurz angeschaut, aber im Prinzip gibts 2 Möglichkeiten:
1. Du machst den Vergleich in checkForm() und kannst eine Fehlermeldung übergeben, dann wird der Eintrag aber auch nicht gespeichert
2. Du fügst nach der Abfrage "if ($insert) {" eine weitere Abfrage ein, ob $deleted auf 1 gesetzt wurde und wenn ja kannst du in
$markerArray['###FORM_ERROR###'] und $markerArray['###FORM_ERROR_FIELDS###'] eine Fehlermeldung schreiben.
KLingt recht gut - aber gibt's schon endgültige Lösungsvorschläge für die PHP-Anfänger? ;-)
Hallöchen,
ich habe den Spamfilter von johanness noch einmal etwas verfeinert:
### KARENS Spamfilter
if (strcmp($saveData['surname'],$saveData['firstname']) == 0) $saveData['hidden'] = '1';
$temp=implode($saveData);
$temp=strtolower($temp);
$spamlist=array("jude","demokratie","xxx.xxx.xxx.xxx");
foreach ($spamlist as $spamelement)
{
if (strpos($temp,$spamelement) > 0 )$saveData['hidden'] = '1';
}
Der Platz im Script hat sich nicht verändert, die Spamliste kann jetzt einfacher erweitert werden. Alle Felder des Gästebucheintrags werden jetzt überprüft.Der Eintrag xxx.xxx.xxx.xxx soll ein Dummy für eine IP-Adresse sein, die jetzt auch gesperrt werden kann. Ich wollte die Einträge im BE noch sehen, deshalb setze ich Spameinträge nur auf hidden.
"Meine" Spammer werde ich damit wohl größtenteils erwischen! 😃
PS: Ich kann leider (noch) keine Extensions entwickeln, vielleicht ist ja jemand von Euch fit und spendiert dem ve_guestbook eine neue Tabelle mit der Blacklist, die man dann in BE pflegen kann.
Gruß Karen
ich habe den Spamfilter von johanness noch einmal etwas verfeinert:
#evil# den hab ich geschrieben #evil#
:o
Sorry woida ...es war wohl spät
Ich hab jetzt noch eine Änderung: Wenn der Eintrag gefiltert wurde, zeige ich auch nicht mehr das Gästebuch an, sondern einen Hinweis auf den Spamfilter und die Nutzungsbedingungen.
Gruß Karen
😃
Hallo zusammen, seitdem ich meinen Spamschutz eingebaut habe, gab es keine Spamversuche mehr. Ich habe allerdings noch etwas mehr gebastelt. Folgendes Metatag hatt m.E. schon vor der Änderung des php-Scripts Erfolg:
<meta name="robots" content="noindex,nofollow" />
Außerdem habe ich ein großes, rotes Stopschild "No Spam - aktiver Spamfilter" gebastelt, deutsche und englische Nutzungbedingungen festgelegt und zu guter Letzt verweise ich bei einem gefilterten Eintrag auf eine Seite, wo dem Benutzer mitgeteilt wird, dass sein Eintrag gefiltert wurde. Hat bisher super geklappt- meine Vermutung ist,dass die Einträge doch noch händisch gesetzt werden.
Ich wünsche allen anderen auch viel Erfolg im Kampf gegen Spam!
Viele Grüße Karen
😃
genau das, was ich auch gebraucht habe - merci!
wobei ne blacklist-tabelle freilich auch was feines waer...
es gruesst
liz
Hallo zusammen,
auf die Dauer habe ich meinen Spamfilter noch einaml verfeinert:
ich habe im Nachrichtenfeld keine URLs mehr erlaubt und im Eingabeformular das Homepagefeld komplett entfernt.(wer brauch dieses Feld wirklich?). Und trotzdem gab es noch Spammer, die das Feld Homepage in der Datenbank füllen konnten :o .
Ich gehe nun davon aus, dass sich diese Leute auf das typo3 ve_guestbook schön spezialisiert haben, und unsere Datenbank automatisiert mit eigenen Scripten füllen. Daraufhin habe ich das Feld für die Homepage in der Datenbank mit dem MyAdmin-Tool umbenannt. #evil# Seitdem ist mein Gästebuch von Spam komplett befreit. #giggle#
Ich gehe nun davon aus, dass sich diese Leute auf das typo3 ve_guestbook schön spezialisiert haben, und unsere Datenbank automatisiert mit eigenen Scripten füllen.
Ja, die haben sich auf das ve_guestbook spezialisiert, und NEIN, die schreiben nicht direkt in die Datenbank; Wenn Sie das koennten, waere es doch viel effizienter den Spam auf jeder Seite (= in der tt_content) unterzubringen.
Das das Feld Homepage trotzdem in der Datenbank ladt, liegt wohl dran, dass ve_guestbook wohl beim Eintragen der Daten in die DB nicht ueberprueft, ob das Feld deaktiviert ist oder nicht. Der Spammer muss also nur die URL des Gaestebuchs aufrufen und die gewuenschten Felder senden.
In welcher Datei gibt ihr das denn ein?
ICh verstehe das irgendwie nicht... bin noch so ne art Newbie...
Vielen Dank
@karen und @woida
genau genau genau!! danke fuer die verifizierung!
😃
@bond
hast du schon mal mit phpmyadmin gearbeitet? falls nein: du gehst ins backend
- tools
- phpMyAdmin
- tx_veguestboook_entries
- feld "homepage" umbenennen
du solltest allerdings mit diesem programm vorsichtig umgehen, falls du dich gar nicht damit auskennst, da kannstedirnaemlichalleszerhacke...
es gruesst
lizbet
woida schrieb
Ja, die haben sich auf das ve_guestbook spezialisiert...
Das ist leider nach wie vor ein Thema (bei mir trotz Captcha)