Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]909[/thread]

email mit link zum verifizieren der adresse (Seite 2)



<< |< 1 2 >| >> 16 Einträge, 2 Seiten
pacey
 2007-03-30 03:02
#9857 #9857
User since
2004-03-01
23 Artikel
BenutzerIn
[Homepage] [default_avatar]
[quote=eloose,30.03.2007, 00:52]<input type="text" name="Adress" size="1" style="background-color:transparent;width:0px;height:0px;border:0px solid transparent;color:transparent;" value="" />[/quote]
Lieber so:

<input type="text" name="Adress" size="1" style="display:none;" value="" />\n\n

<!--EDIT|pacey|1175209379-->
Quote
If You don't know what it does, why do you put it in your code

Code: ()
1
2
3
print +(a=>b=>c=>d=>e=>f=>g=>h=>i=>j=>k=>l=>m=>n=>o=>p=>q=>r=>s=>t=>u=>v=>w=>x=>y=>z=>" ")

[9=>20=>18=>19=>-1=>0=>13=>14=>19=>7=>4=>17=>-1=>15=>4=>17=>11=>-1=>7=>0=>2=>10=>4=>17];
Gast Gast
 2007-03-30 03:17
#9858 #9858
[quote=pacey,30.03.2007, 01:02][quote=eloose,30.03.2007, 00:52]<input type="text" name="Adress" size="1" style="background-color:transparent;width:0px;height:0px;border:0px solid transparent;color:transparent;" value="" />[/quote]
Lieber so:

<input type="text" name="Adress" size="1" style="display:none;" value="" />[/quote]
mhh ja, das könnt ich einfach noch als 4. möglichkeit hinzunehmen :)

visibility:hidden

kommt dem ja ziemlich ähnlich, nur da wird halt platz für das element eingenommen, beim andern glaub nicht richtig ?
pacey
 2007-03-30 03:30
#9859 #9859
User since
2004-03-01
23 Artikel
BenutzerIn
[Homepage] [default_avatar]
richtig.
display:none reserviert keinen platz
visibility:hidden reserviert platz

achso, mir gefällt die idee, dass dein feld adress heisst - wird warscheinlich die spambots erstrecht reinfallen lassen.

Mein Vorschlag wäre noch, um sicher zu gehen, dass CSS in eine externe Datei auszulagern, da ich denke, dass diese von den Bots nicht gelesen werden.

Außerdem wäre eine weitere Möglichkeit der Verbesserung, keine Klasse für die Felder zu verwenden sondern über den Dokumentbaum das Element zu finden. Die Warscheinlichkeit einen Bot zu finden der externes CSS interpretiert UND das DOM kann finde ich gering :)

Zu guter letzt könntest du auch ein Readonly Feld erzeugen, dass per JavaScript gefüllt wird (zum Beispiel mit einer Art Unique ID - wobei ich hier dagegen wäre dies als einziges Merkmal zu nutzen.

Wenn du viele Möglichkeiten gleichzeitig nutzt kannst du im Skript einen Scorewert bilden um selbst anhand eines Schwellwerts zu entscheiden wann du die Registrierung verweigerst. Ich weiss es ist nicht in PERL geschrieben aber Spam Karma für Wordpress macht es ähnlich.

viel erfolg
pacey
Quote
If You don't know what it does, why do you put it in your code

Code: ()
1
2
3
print +(a=>b=>c=>d=>e=>f=>g=>h=>i=>j=>k=>l=>m=>n=>o=>p=>q=>r=>s=>t=>u=>v=>w=>x=>y=>z=>" ")

[9=>20=>18=>19=>-1=>0=>13=>14=>19=>7=>4=>17=>-1=>15=>4=>17=>11=>-1=>7=>0=>2=>10=>4=>17];
Gast Gast
 2007-03-30 03:42
#9860 #9860
[quote=pacey,30.03.2007, 01:30]richtig.
display:none reserviert keinen platz
visibility:hidden reserviert platz

achso, mir gefällt die idee, dass dein feld adress heisst - wird warscheinlich die spambots erstrecht reinfallen lassen.

Mein Vorschlag wäre noch, um sicher zu gehen, dass CSS in eine externe Datei auszulagern, da ich denke, dass diese von den Bots nicht gelesen werden.

Außerdem wäre eine weitere Möglichkeit der Verbesserung, keine Klasse für die Felder zu verwenden sondern über den Dokumentbaum das Element zu finden. Die Warscheinlichkeit einen Bot zu finden der externes CSS interpretiert UND das DOM kann finde ich gering :)

Zu guter letzt könntest du auch ein Readonly Feld erzeugen, dass per JavaScript gefüllt wird (zum Beispiel mit einer Art Unique ID - wobei ich hier dagegen wäre dies als einziges Merkmal zu nutzen.

Wenn du viele Möglichkeiten gleichzeitig nutzt kannst du im Skript einen Scorewert bilden um selbst anhand eines Schwellwerts zu entscheiden wann du die Registrierung verweigerst. Ich weiss es ist nicht in PERL geschrieben aber Spam Karma für Wordpress macht es ähnlich.

viel erfolg
pacey[/quote]
ja ich find die idee auch gut :)

css auslagern klingt logisch, mach ich..

Die javascript idee versteh ich nicht ganz, bei einem bot würde das doch auch ausgefüllt werden oder können die kein javascript ?!?! und wozu brauch ich da ne id, kann ich doch auch irgendwas reinschreiben lasse bzw. immer das gleiche?
Und was ist wenn ein user javascript deaktivier hat?

Die DOM idee versteh ich nich :blues:

Und meinst du bei dem Schwellwert, dass ich z.B. 5 test einbau, der user aber nur 4 bestehen muss?
pacey
 2007-03-30 04:15
#9861 #9861
User since
2004-03-01
23 Artikel
BenutzerIn
[Homepage] [default_avatar]
Hallo eloose,

vielleicht war ich ein wenig zu ungenau.

Wie ich geschrieben habe bin ich auch dagegen die JavaScript Variante als alleiniges Mittel einzusetzen. Aber als Zusatz zu den anderen Möglichkeiten ist es vielleicht eine nützliche Erweiterung.

Die meisten mir bekannten Bots können kein JavaScript (da Sie häufig auf simpelste Weise erstellt werden z.B.: in PERL :))

Wenn du das Feld immer mit dem gleichen Wert füllst wird jemand der es auf dich abgesehen hat einmal den HTTP Header analysieren und wissen welche Daten du an den Server schickst. Daher geht meine Empfehlung zu einer dynamischen Variante die zum Beispiel die MD5 Summe von URL IP-Adresse und der aktuellen Stunde übermittelt.

Da es eben User gibt die JavaScript deaktiviert haben müssen wir zu dies zu einer Schwellwertlösung ausbauen. Das Prinzip ist das gleiche nach dem Antispam Tools für E-Mails arbeiten. Für verschiedene Kriterien werden Punkte vergeben (zum Beispiel pro Link in der E-Mail 5 Punkte, wohingegen dauerhaftes groß schreiben mit 25 Punkten Score gewertet wird). Jetzt wird ein Schwellwert festgelegt der zwischen Bot und Mensch entscheidet.

Ein gutes Beispiel bietet in meinen Augen wirklich das Wordpress Modul Spam Karma 2 (deswegen muß es auch nun als Beispiel herhalten):
Um einen Kommentar in einem von Spam Karma überwachten Blog abzugeben werden folgende Kriterien angelegt:

1. Anzahl Links
2. Zeit zwischen Betreten der Beitragsseite und des abgebens des Kommentars
3. Prüfung auf vorhandenes JavaScript
etc.

Intern werden für jeden nicht bestandenen Test Punkte vergeben. Überschreitet ein Kommentar eine gewisse Schwelle an Fehlerpunkten wird der Eintrag nicht zugelassen.

Zurück zu deinem Fall:
1. Prüfung: Hat der Benutzer etwas in ein Feld geschrieben das er gar nicht sehen kann ? - 5 Punkte
2. Prüfung: Hat der Benutzer kein JavaScript aktiviert? 5 Punkte
3. Prüfung: Hat der Benutzer die Rechenaufgabe falsch gelöst ? 5 Punkte

Schwellwert sei in unserem Fall nun 10. Hat der Benutzer zwei von 3 Tests nicht bestanden gehen wir davon aus, dass er ein Bot ist und wir verweigern Ihm die Registrierung - oder bieten Ihm zum Beispiel nochmals die Möglichkeit ein Captcha zu benutzen oder direkten Kontakt zu einem Admin aufzunehmen der seine Identität überprüft.

Dies in groben Zügen ist die Schwellwert Idee. Je mehr Tests du durchführst desto feiner kannst du mögliche Fehlerkennungen ausschliessen.

Kommen wir also zur CSS / DOM Frage:
1. Möglichkeit für die CSS Falle wäre folgende:
Code: (dl )
<input type="text" name="Adress" size="1" style="background-color:transparent;width:0px;height:0px;border:0px solid transparent;color:transparent;" value="" />


Möglicherweise würde ein intelligenter Spambot hier Lunte riechen und das Feld nicht ausfüllen.

Deshalb ist es sinnvoller, das CSS in eine externe Datei auszulagern (wie ja bereits schon erwähnt)

Das würde dann unter Umständen so aussehen:
Code: (dl )
<input type="text" name="Adress" size="1" class="invisible" value="" />


Ist auch nicht das gelbe vom Ei, da auch der nichtsnutzigste Spambot versteht was invisible heisst.

CSS bietet mir aber nun eine weitaus sicherere Möglichkeit: Da ich ja vorher weiss, an welcher Stelle des HTML Codes sich der versteckte Teil befinden wird kann ich mein CSS ja nach dem typischen Baumschema anlegen.

Code: (dl )
1
2
3
html.body.table.tr.td.input {
display: false;
}


Auf diese Weise müsste unser geliebter Spammer den ganzen Dokumentbaum durchforsten um herauszufinden an welcher Stelle denn nun so ein Objekt liegt.

Gruß
pacey
Quote
If You don't know what it does, why do you put it in your code

Code: ()
1
2
3
print +(a=>b=>c=>d=>e=>f=>g=>h=>i=>j=>k=>l=>m=>n=>o=>p=>q=>r=>s=>t=>u=>v=>w=>x=>y=>z=>" ")

[9=>20=>18=>19=>-1=>0=>13=>14=>19=>7=>4=>17=>-1=>15=>4=>17=>11=>-1=>7=>0=>2=>10=>4=>17];
Gast Gast
 2007-03-30 04:26
#9862 #9862
Also erstmal nochmal danke für deine Hilfe.

Mano wollte grade css mit IDs machen aber deine idee mit DOM(bei der ich jetzt auch weiß was du meintest :)) is natürlich nochmal besser.

Also hab jetzt alle deine Ideen verstanden und werd wohl auch so ziemlich alles umsetzen..\n\n

<!--EDIT|eloose|1175214442-->
<< |< 1 2 >| >> 16 Einträge, 2 Seiten



View all threads created 2007-03-28 19:42.