Mai 232011
 

Ein Honeypot ist in unserem Fall ein Input-Feld, das wir mit Hilfe von CSS außerhalb des sichtbaren Bereichs der Webseite platzieren. Im php-Code prüfen wir, ob dieses Feld beim Absenden ausgefüllt wurde. Da die meisten SPAM-Versender ohne zu prüfen alle Felder ausfüllen, können wir so recht einfach erhrliche Besucher von Bots unterscheiden.

1) class.tx_comments_pi1.php anpassen

Zuerst legen wir eine zusätzliche Funktion an:

function check_honeypot() {
    if(t3lib_div::GPvar('honeypot')!=''){
         return (1);
    }
    else{
       return(0);
    }
}

in Zeile 967 fügen wir eine kleine Abfrage hinzu

elseif ($this->conf['honeypot']==1){
if ($this->check_honeypot()==1){
$this->formValidationErrors['honeypot'] = $this->pi_getLL('error.dont.fill.honeypot');
}
}

2) Template ergänzen

Im Template, zum Beispiel dem mitgelieferten unter res/pi1_template.html fügen wir einfach die Zeile

:html:<input type=“input“ name=“honeypot“ style=“position: absolute; margin: 0 0 0 -9999px;“ value=““ />

im Formular ein.

3) TYPOscript anpassen

Um die Funktion zu aktivieren, ergänzen wir das TS-Setup unserer Seite um die Zeile
plugin.tx_comments_pi1.honeypot=1

4) Fazit:

Im Vergleich zu einem Capture ist die Lösung mit dem Honeypot für die erhlichen Besucher wenig störend. Wenn der SPAM überhand nimmt, lässt sich der Honeypot ja wieder jederzeit durch ein Capture ersetzten.

Related Files

 Antworten

Du kannst diese HTML Tags und Attribute benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(Pflichtfeld)

(Pflichtfeld)

© 2017 LAMP solutions GmbH