|
|
|
in der Kommentarfunktion eines Scripts
|
Hi Zusammen!
Ich kämpfe seit Monaten mit Spambots, die die Komments meines Newsscripts mit Zahlen- und Buchstabensalat vollmüllen Nachdem ich kurzzeitig damit Erfolg hatte, einige Ausdrücke zu verbieten, hilft diese Strategie nun nicht mehr weiter: Täglich kommen neue Beiträge hinzu, die nur noch aus "ud77djdsid7dzhd8zjd" u.ä. bestehen...
Daher folgende Überlegung von mir: Ich möchte das Eingabefeld für die EMail-Adresse des Kommentators verstecken und ihr einen vorgegebenen Inhalt abc zuteilen. Ein "menschlicher" Kommentator könnte hier also keine Änderung machen, da er das Eingabefeld ja nicht sieht. Der Smapbot hingegen füllt scheinbar alle möglichen Felder automatisch aus. Wenn das Newsscript aber nun feststellt, dass der Inhalt des EMail-Feldes eben nicht abc ist, wird der Eintrag geblockt.
So viel zur Theorie, wie ich das umsetzen soll, weiß ich leider nicht Derzeit überprüft mein Script lediglich, ob das Eingabefeld EMail überhaupt ausgefüllt wurde. Wie kann ich ihm sagen, dass es nur einen ganz bestimmten Wert zulassen soll?
Hier der Link zur relevanten Datei: http://www.team-dhk.de/temp/news.zip
Danke im voraus für eure Hilfe
|
|
|
|
|
|
|
Zeile 274:
if($HTTP_POST_VARS['author'] AND $HTTP_POST_VARS['email'] AND $HTTP_POST_VARS['text']) { // :CHANGED:
in
if($HTTP_POST_VARS['author'] AND $HTTP_POST_VARS['email'] AND $HTTP_POST_VARS['text'] AND $HTTP_POST_VATS['emai'] == 'abc') { // :CHANGED:
ändern.
Wobei ich eher ein leeres, verstecktes input-Feld einbauen würde und das dann überprüfen würde, ob es leer ist (Mensch) oder ausgefüllt worden ist (Bot)
Kris
|
|
|
|
|
|
|
Danke, deine Lösung funktioniert schon mal.
Aber wo ist der Unterschied bei deinem Vorschlag?
|
|
|
|
|
|
|
Dass man noch seine E-Mail Adresse angeben kann. :x
Versteckst du das Feld über CSS oder über type="hidden" ?
Kris
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von Zensiert am 17.05.2007 11:40]
|
|
|
|
|
|
Als E-Mail Adresse trägt bei mir eh nie jemand was richtiges ein, von daher ist das nicht so schlimm
...über type="hidden"
|
|
|
|
|
|
|
Hmm, vll. wäre es auch sinnvoll, zusätzlich eine gewisse Quote an Zahlen, bzw. Nummern rauszufiltern. Wenn z.B. 40% des Textes aus Nummern besteht wird er gefiltert.
Die Idee mit einem versteckten (leeren) input-Feld ist auch nicht schlecht, hilft aber nicht bei Eingaben von Menschen.
|
|
|
|
|
|
|
| Zitat von sh3ll85
Als E-Mail Adresse trägt bei mir eh nie jemand was richtiges ein, von daher ist das nicht so schlimm
...über type="hidden"
| |
Kann sein, dass die Bots das Feld dann ignorieren.
Würde dem Input eine class geben und dann über display:none
Kris
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von Zensiert am 17.05.2007 12:43]
|
|
|
|
|
|
| Zitat von cms
Hmm, vll. wäre es auch sinnvoll, zusätzlich eine gewisse Quote an Zahlen, bzw. Nummern rauszufiltern. Wenn z.B. 40% des Textes aus Nummern besteht wird er gefiltert.
Die Idee mit einem versteckten (leeren) input-Feld ist auch nicht schlecht, hilft aber nicht bei Eingaben von Menschen.
| |
Mal schauen, wie weit ich mit der jetzigen Lösung komme. Bei Bedarf komm ich dann auf dich zurück
Und wie ich via CSS verstecke, weiß ich (noch) nicht genau. Aber vllt gehts ja auch so, mal sehen
Danke an alle!
|
|
|
|
|
|
|
<input type="text" name="email" class="textfield" />
in der CSS-Datei dann
.textfield {
display:none;
}
Kris
|
|
|
|
|
|
|
| Zitat von Zensiert
<input type="text" name="email" class="textfield" />
in der CSS-Datei dann
.textfield {
display:none;
}
Kris
| |
Merci
|
|
|
|
|
|
|
Die meisten Spambots beachten per type="hidden" versteckte Felder nicht, da darüber normalerweise die Parameter für die URI zusammengestellt werden.
Wenn du das Feld per CSS versteckst hast du das Problem, dass es bei normalen Besuchern, die CSS deaktiviert haben, angezeigt wird, wobei die Anzahl bei normalen Seiten im Promillebereich ist (außer, die Seite wird oft per Handy abgerufen).
Am wirksamsten ist meiner Meinung nach eine Anbindung an Akismet (http://www.drweb.de/webmaster/kontakt-formular-akismet.shtml) oder die Pflichteingabe eines Wertes (entweder eine Rechenaufgabe oder einfach ein Wort, wie z.B. "Tippe in das Feld das Wort 'blau' ein.")
|
|
|
|
|
|
|
Man könnte das Feld mit css absolut positionieren und dann nach jwd verschieben.
|
|
|
|
|
|
|
Hat eigentlich dieselben Vor- und Nachteile wie die display:none-Lösung.
|
|
|
|
|
|
|
scrollbars? wenn ich irgendwas außerhalb des sichtbereiches anzeigen lasse, entstehen die doch automatisch?
|
|
|
|
|
|
|
Wenn man etwas per negativem text-indent aus dem Anzeigebereich schiebt erscheinen jedenfalls keine Scrollbars. Darauf basieren ja auch mehrere Image-Replacement-Techniken.
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von *Reeno* am 27.05.2007 12:32]
|
|
|
|
|
|
Welche User können überhaupt CSS deaktivieren. Meines Wissens nach ging das nur in einer älteren Netscape-Variante, "JSSS deaktivieren" oder so ähnlich hieß das da und hat JS und CSS ausgeschaltet...
|
|
|
|
|
|
|
Welche Beweggründe sollte ein Nutzer überhaupt haben, CSS ausschalten zu wollen?
|
|
|
|
|
|
|
Es ist für eine "normale" Seite eher eine theoretische Frage die man sich im Sinne der optimalen Zugänglichkeit (WAI etc.) stellt.
Ohne CSS surfen auf jeden Fall alle normalen Handys (also alles außer Handhelds/PDAs), einige Screenreader, Textbrowser (die sind sogar noch vereinzelt unterwegs) und Bots (was man hier ja gerade ausnutzt).
@cms: Firefox und der IE können CSS abstellen (bequem nur über eine Toolbar).
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von *Reeno* am 27.05.2007 14:25]
|
|
|
|
|
|
Ok, ich wüsste nicht, wie es geht...
Also kann man wohl durchaus davon ausgehen, dass das höchstens 1% aller Surfer tun. Abgesehen davon ist jemand, der in ein Textfeld ohne Beschreibung, was reingehört, etwas eintippt und sich wundert, warum sein Beitrag nicht genommen wird, schon fast selbst schuld.
|
|
|
|
|
|
|
|
|
|
|
Richtig, die Web-Developer-Toolbar - häufig genutzt und komplett vergessen.
Aber das wäre, wie du schon sagst, eine zu vernachlässigende Sache (ähnlich wie JS).
|
|
|
|
|
|
|
Sonst setzt man noch ein Label davor, indem drin steht: "Nicht ausfüllen" o.ä. und versteckt es mit.
Kris
|
|
|
|
|
|
|
Sehr gut finde ich eigentlich die Abstrakten Verfahren wie z.B. "Welche Farbe hat dieser Text". Dann einfach ne Auswahlbox anbieten und man muss eben die passende Farbe auswählen.
Bleibt ein Restrisiko, dass ein Bot zuäfflig die richtige Farbe bei seiner Randomwahl erwischt, aber das meiste haste so ausgeknockt
|
|
|
|
|
|
|
Falls es jemanden für seinen persönlichen Kampf interessiert, hier ein paar Erfahrungen meinerseits: Seitdem ich das Textfeld mit CSS versteckt und so eingestellt habe, dass es leer bleiben muss, wenn der Beitrag angenommen werden soll, gab es keine Spameinträge mehr.
Wie hier schon angemerkt wurde: Das Textfeld via type="hidden" zu verstecken bringt nach meiner Erfahrung wenig, die meisten Bots ignorieren das Feld dann. Ebenso bringt es wenig, wenn das Feld einen vordefinierten Wert hat, der nicht abgeändert werden darf - auch dann wird dieses ignoriert und der vordefinierte Wert beim Eintrag übernommen.
Methoden wie die "abstrake Farbauswahl" sind sicherlich auch sehr effektiv, nur muss man sich, vor allem als Betreiber einer kleinen Seite, fragen, wie viele Steine man einem Besucher in den Weg legen darf, ohne ihn gleich zu verschrecken...
|
|
|
|
|
|
|
Sonst kann man natürlich auch selbstlernende Spamfilter einsetzen (b8) oder auf Akismet setzen
Kris
|
|
|
|
|
|
Thema: Antispam Überlegungen ( in der Kommentarfunktion eines Scripts ) |