Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.

#1 25. August 2017 08:43

antibart
Server-Pate
Registriert: 14. Dezember 2010
Beiträge: 806

NMS und der Honeypot

Hi,

ich bin mir nicht sicher, ob das nicht eher ein allgemeines Plauderthema wäre oder doch ein modulspezifisches. Da hängt wohl von den Antworten ab. wink

Wie sind eure Erfahrungen mit Honeypots allgemein oder speziell in Verbindung mit Newsletter Made Simple? Ich finde sie theoretisch als Alternative zu fehleranfälligen und hässlichen Captchas recht verlockend.

Im Anmeldetemplate von NMS ist ja ein auskommentiertes Honeypot-Feld integriert. Wegen des hohen Spamaufkommens habe ich das mal bei zwei Projekten ausprobiert. So unauffällig wie möglich: Mit Div drum, Label und allem möglichst analog zu den anderen, offiziellen Feldern.

Zunächst sichtbar getestet: Fülle ich das Feld aus, wie es ein Bot tun sollte, scheitert die Anmeldung. Lass ich es leer, gelingt sie. Alles klar. 

Nach dem erfolgreichen Funktionstest habe ich wie allgemein empfohlen, das Div in den CSS mit display:none; ausgeblendet, damit humanoide Nutzer nicht verwirrt werden.
Ergebnis am nächsten Tag: immer noch 5 bzw. 10 Anmeldungen durch Spambots.

Vermutung: display:none; in den CSS wird von vielen Spambots bereits verstanden.

Nächster Versuch: Statt das div komplett auszublenden, habe ich ihm eine geringfüge Höhe und ein overflow:hidden verpasst - für das menschliche Auge unsichtbar.

Ergebnis: Die Anmeldungen durch Spambots hatte sich bei beiden Projekten sogar fast verdoppelt.

Ich gestehe, dass ich vorher, als das Anmeldeformular noch komplett ungeschützt war, nicht genau Buch über die Spamzugriffe geführt habe. Ich habe einfach sporadisch alle paar Wochen / Monate zwei- bis dreihundert Spamanmeldungen gelöscht.

Mit einer gewissen Menge an Spam muss man leben, aber "gefühlt" würde ich sagen, dass der Honigtopf rein gar nichts gebracht hat. Denn bei 10-20 Spambots pro Tag sind 100 schon innerhalb kürzester Zeit erreicht.

Hierzu folgende Gedanken / Fragen:

  • Ist das Verstecken über CSS - egal wie - überholt, weil die Bots bereits jede Möglichkeit kennen?

  • Gibt es bessere Möglichkeiten außer CSS, um das Feld auszublenden?

  • Ist der von NMS generierte Wert für name="{$actionid}nms__data)" bereits zu durchschaubar?

  • Wäre es sinnvoller, das Feld gar nicht auszublenden und den Nutzer darauf hinzuweisen, das Feld leer zu lassen?

  • Ist der Honigtopf sowieso gestrig?

  • Was wäre - außer Captcha - eine einfache Alternative?

Ich freue mich über Kommentare
Gruß

Beitrag geändert von antibart (25. August 2017 09:41)

Offline

#2 07. Januar 2018 22:28

cyberman
Moderator
Ort: Dohna / Sachsen
Registriert: 13. September 2010
Beiträge: 6.878
Webseite

Re: NMS und der Honeypot

Eine ganze Batterie von Fragen ops - vllt zu viele, weshalb bislang keiner geantwortet hat.

Wenn display: none nicht funktioniert, könnte man auch darüber nachdenken, dieses Feld komplett in Formularfarbe einzufärben.

Wenn Honeypot und Captchas bei dir nicht funktionieren (keine Ahnung, ob es evtl. am Modul liegt), gibt es sicherlich eine ganze Menge Alternativen.

Zunächst wäre da sicherlich reCaptcha zu nennen - die Variante mit der Bildauswahl (klicken sie auf alle Bilder, die ein Fahrzeug enthalten) gefällt mir da ganz gut.

Weiter könnte man mit Akismet (Spammer-Datenbank) arbeiten

http://dev.cmsmadesimple.org/projects/akismet

Alternativ ließe sich in der Smarty-Logik sicherlich auch ein Check der E-Mail-Adresse auf dessen Existenz einbauen (nicht selten verwenden die Spammer ja Fantasie-Adressen).

Desweiteren könnte man durch HTML5-Vorgaben klar definieren, was und wieviel in welchem Feld stehen darf. Was ich meine - eine Postleitzahl besteht aus mindestens 4 Ziffern, Buchstaben haben dort nix zu suchen. Konkret meinte ich den Einsatz von Pattern, wie ich ihn schon mal beim Such-Modul gezeigt hatte. Geht natürlich auch noch deutlich komplexer wink .

Und wie das Forum abgesichert ist, hatte ich hier schon mal beschrieben.


1. Wie bekomme ich hier schnelle Hilfe?
2. HowTo: Fehlersuche bei CMS/ms
---
„First they ignore you, then they laugh at you, then they fight you, then you win.“ Mahatma Ghandi

Offline

#3 09. Januar 2018 13:05

antibart
Server-Pate
Registriert: 14. Dezember 2010
Beiträge: 806

Re: NMS und der Honeypot

Hallo,

keine Captchas. Aber ich habe mittlerweile Vermutung, warum der Honigtopf nichts bewirkt. Ich nehme an, bei den Spambots handelt es sich umden immer gleichen. Der logged sich nicht mehr auf der Seite eine, sondern hat das Formular vermutlich selbst gespeichert und sendet die immer wieder gleiche Anfrage ab.

Das mit den HTML5-Vorganen habe ich mittlerweile auch schon gemacht. DAs ist ganz gut.

Beitrag geändert von antibart (09. Januar 2018 13:30)

Offline

#4 09. Januar 2018 22:13

cyberman
Moderator
Ort: Dohna / Sachsen
Registriert: 13. September 2010
Beiträge: 6.878
Webseite

Re: NMS und der Honeypot

Erfolgt der Formularversand via GET oder POST?

Wenn es immer der gleiche Bot sein sollte, hat er vermutlich auch immer die gleiche IP. Die sich blockieren lässt.

Oder als einfache Lösung ein Miniquiz...


1. Wie bekomme ich hier schnelle Hilfe?
2. HowTo: Fehlersuche bei CMS/ms
---
„First they ignore you, then they laugh at you, then they fight you, then you win.“ Mahatma Ghandi

Offline

#5 10. Januar 2018 09:03

antibart
Server-Pate
Registriert: 14. Dezember 2010
Beiträge: 806

Re: NMS und der Honeypot

cyberman schrieb:

Wenn es immer der gleiche Bot sein sollte, hat er vermutlich auch immer die gleiche IP. Die sich blockieren lässt.


Ja klar. Der Thread wurde ja im August 2017 erstellt und mittlerweile konnte ich das Spamaufkommen eindämmern. Meine Fragen waren eher allgemeiner Natur, da habe ich kein "gelöst" drangehängt.

cyberman schrieb:

Oder als einfache Lösung ein Miniquiz...

Ich bin bei Newsletter-Abos von eher kleinen Betrieben wie Kneipen etc. überhaupt kein Freund von allem, was den Vorgang verkompliziert. Daher habe ich ja nach Alternativen zu Captcha und Co. gesucht. Die Mischung aus Honeypot und HTML5-Vorgaben hat nach und nach in den meisten Fällen zur Beruhigung geführt.

Die Usernamen der Spambots sind meist Zeichenfolgen aus Ziffern und Buchstaben. Ich habe einfach die Verwendung von Ziffern unterbunden. Humanoide User bekommen einen entsprechenden Hinweis.

Beitrag geändert von antibart (10. Januar 2018 09:16)

Offline

#6 15. Januar 2018 19:46

cyberman
Moderator
Ort: Dohna / Sachsen
Registriert: 13. September 2010
Beiträge: 6.878
Webseite

Re: NMS und der Honeypot

antibart schrieb:

Ich bin bei Newsletter-Abos von eher kleinen Betrieben wie Kneipen etc. überhaupt kein Freund von allem, was den Vorgang verkompliziert.

Dem Vernehmen nach gibt es auch schon Lösungen, die komplett ohne (sichtbare) Absicherung arbeiten - indem die Eingabegeschwindigkeit "gemessen" wird. Bei 'nem Bot sind die Eingaben ratzfatz da, ein Humanoid benötigt da auch mit der Autovervollständigen Funktion schon etwas länger.

antibart schrieb:

Die Mischung aus Honeypot und HTML5-Vorgaben hat nach und nach in den meisten Fällen zur Beruhigung geführt.

Die Usernamen der Spambots sind meist Zeichenfolgen aus Ziffern und Buchstaben. Ich habe einfach die Verwendung von Ziffern unterbunden. Humanoide User bekommen einen entsprechenden Hinweis.

Vllt kannst du ja deine Lösung für NMS mal hier für die anderen Interessenten im Detail vorstellen wink


1. Wie bekomme ich hier schnelle Hilfe?
2. HowTo: Fehlersuche bei CMS/ms
---
„First they ignore you, then they laugh at you, then they fight you, then you win.“ Mahatma Ghandi

Offline

#7 16. Januar 2018 11:11

antibart
Server-Pate
Registriert: 14. Dezember 2010
Beiträge: 806

Re: NMS und der Honeypot

Okay:


1. HTML5 in NMS:

Im Anmeldetemplate beim Inputfeld für den Usernamen. Auschlagebend ist das Attribut "pattern='\D+'", was nur Buchstaben als gültge Zeichen zulässt:

[== html ==]
<input pattern="\D+" type="text" value="{$user.name}" required id="nms_name" name="{$actionid}nms_username" size="80" title="Aus Sicherheitsgründen keine Ziffern in Namen" />

Da die meisten Bots zufällige Zahlen- und Buchstaben im Namen tragen, kommen sie nicht durch. Humanoide, die Zahlen im Usernamen benutzt haben, bekommen den Text aus dem title-Attribut angezeigt.

2. Honeypot in NMS

Ein einfacher Honeypot ist im NMS-Template bereits vorhanden und muss nur auskommentiert werden:

[== html ==]
 {* a simple honeypot captcha. *}
    <!-- <input type="text" name="{$actionid}nms__data" value=""/> -->

Damit der Honeypot möglichst unauffällig ist, sollte die HTML-Struktur noch so angepasst werden, dass sie den anderen Feldern entsprechen.


zB so. Das obere ist ein sichtbares, normals Mailadressen-Feld, darunter der Honeypot als vermintliches Mail-Bestätigungsfeld.

[== html ==]
<div class="row">
     <label for="nms_email">*{$mod->Lang('emailaddress')}:</label>
      
        <input type="text" id="nms_email" name="{$actionid}nms_email" value="{$user.email}" size="50" maxlength="150"/>
      
    </div>

<div class="row">
     <label for="nms_email_agian">*{$mod->Lang('emailaddress')} wiederholen:</label>
      
        <input type="text" id="nms_data" name="{$actionid}nms__data" value="Enter email agian"/>
      
    </div>

Dann muss der Honeypot natürlich noch versteckt werden. Da "display:none" vermutlich schon zu verbreitet ist, kann man als Alternativen gleiche Hintergrundfarbe, minimale Höhe oder einen Bereich außerhalb des Bildschirms testen.

Beitrag geändert von antibart (18. Januar 2018 09:43)

Offline

#8 17. Januar 2018 19:41

cyberman
Moderator
Ort: Dohna / Sachsen
Registriert: 13. September 2010
Beiträge: 6.878
Webseite

Re: NMS und der Honeypot

Danke dir cool !!!


1. Wie bekomme ich hier schnelle Hilfe?
2. HowTo: Fehlersuche bei CMS/ms
---
„First they ignore you, then they laugh at you, then they fight you, then you win.“ Mahatma Ghandi

Offline

#9 18. Januar 2018 13:36

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.159

Re: NMS und der Honeypot

Nur noch eine kleine Ergänzung, um zur Weiterentwicklung dieser Idee anzuregen: Das Einfügen eines für Menschen nicht sichtbaren Feldes führt leider zu einem Usability-Problem. Wenn man mit TAB alle Felder durchgeht oder bei Screenreadern bzw. reinen Textbrowsern, kann es auch einem Menschen versehentlich passieren, etwas in das Honeypot-Feld einzutragen. Es ist vor/nach Absenden des Formulars also wichtig, eine Meldung auszugeben, dass eine Eingabe falsch ist. Wenn man dabei aus Usability-Gründen die Formulareingaben zwischengespeichert hat, sollte man aber den Inhalt des Honeypots leer lassen, weil der Mensch den Fehler ja nicht sehen kann.
Evtl. hilft es, wenn man ins Label für dieses Feld noch den Hinweis einfügt, dass man es bitte leer lassen soll - der Bot wird diese Aufforderung ja kaum auswerten.

Das führt zum nächsten Problem: Die Bots analysieren das Resultat des Formularversands. Gibt es Anzeichen dafür, dass der Formularversand fehlgeschlagen ist, wird via try & error so lange weiterprobiert, bis es gelingt. Die Bots können sich also teilweise selbst beibringen, wie ein Formular ausgefüllt sein muss. Um das zu verhindern, muss dem Bot immer ein "anderes" Formular präsentiert werden. D.h. die Reihenfolge der Felder muss variieren (zumindest der Honeypot sollte immer woanders sein) und die Namen der Felder müssen sich ändern. Das wird aber im Fall NMS nur möglich, wenn man umfangreiche Änderungen im PHP-Code vornimmt. D.h. jedes Feld bekommt einen zufällig generierten Namen. Was diese Namen bedeuten, wird in einer Session-Variable gespeichert, damit man das Formular auch auswerten kann.

Sollte man zweifelsfrei einen Bot erkannt haben, darf der Formularversand zumindest optisch nicht fehlschlagen. Der Bot muss glauben, dass seine Eingabe erfolgreich übermittelt wurde, um zu verhindern, dass er weiterprobiert. Das kollidiert allerdings mit dem ersten Problem.

Offline

#10 18. Januar 2018 13:38

antibart
Server-Pate
Registriert: 14. Dezember 2010
Beiträge: 806

Re: NMS und der Honeypot

Danke für die ERgänzung.

Offline

#11 18. Januar 2018 13:56

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.159

Re: NMS und der Honeypot

Was man übrigens auch noch machen könnte, wäre, den Honeypot als simples Captcha darzustellen und den User darauf hinzuweisen, dass er das lästige Feld da unten leer lassen darf. Der Bot wird natürlich brav versuchen, das Captcha zu knacken...  big_smile

Offline

#12 19. Januar 2018 16:52

cyberman
Moderator
Ort: Dohna / Sachsen
Registriert: 13. September 2010
Beiträge: 6.878
Webseite

Re: NMS und der Honeypot

NaN schrieb:

Was man übrigens auch noch machen könnte, wäre, den Honeypot als simples Captcha darzustellen und den User darauf hinzuweisen, dass er das lästige Feld da unten leer lassen darf. Der Bot wird natürlich brav versuchen, das Captcha zu knacken...  big_smile


Ein Fake Captcha - genial big_smile .


1. Wie bekomme ich hier schnelle Hilfe?
2. HowTo: Fehlersuche bei CMS/ms
---
„First they ignore you, then they laugh at you, then they fight you, then you win.“ Mahatma Ghandi

Offline