PyroGX
mir ist die idee gekommen einen spam/botschutz zu basteln der per JS und der php-pear funktion "crypt" funktioniert
per PHP wird ein string "verschlüsselt" und per JS beim benutzer wieder entschlüsselt
der entschlüsselte string wird dann beim absenden des formulars mitgeschickt und PHP weis dann ob der user JS aktiviert hat
laut einem kollegen können bots schon länger JS und solche aktionen sind sinnlos, laut einem anderen kollegen können bots bisher kein bischen JS, allerhöchstens können sie die originale pear-crypt-funktion auslesen und das was eigentlich JS übernehmen sollte wird von dem bot gemacht, ich würde die crypt-funktionsausgabe anders machen
nun hätte ich da gerne noch einige andere kommentare und meinungen zu dem thema
der vorteil wäre das user keine unlesbaren captchas mehr entziffern müssten, allerdings müssten sie JS aktiviert haben
24Bytes
Du sagst es

JS müsste aktiv sein... haben immer noch nicht alle
und man müsste ein schutz entwickeln, welcher lange hält... den wenn du es nun machst und jemand daran interessiert ist das formular ein paar 100 mal zu verschicken, bastelt der mal eben was um und JS ist auch im bot aktiviert.
PS: Ich bin auch schon länger am grübeln über eine alternative ...
PyroGX
ich weis leider nicht wieviel % meiner besucher JS aktiviert haben
kann mir denn evtl auch jemand sagen wie sicher meine aktuellen captchas sind?
24Bytes
Sicherheit kann man nicht messen
Aber was ich für sicher halte:
Verschiedene Methoden/Arten von Captchas, z.B.:
=>Viele Zeichen, durcheinander im Bild, eingeben nur bestimmte Zeichen die unterstrichen sind
=>Viele Zeichen, durcheinander im Bild, eingeben nur bestimmte Zeichen die umkreist sind
=>Viele Zeichen, durcheinander im Bild, eingeben nur Zeichen um die ein quadrat existiert
=>Viele Zeichen, durcheinander im Bild, eingeben nur bestimmte Zeichen in einer bestimmten farbe
==> Mehrere davon kombiniert z.B.: man muss nur zeichen eingeben die rot und unterstrichen sind
==> Bei jedem aufruf eine andere Methode/Art z.B.: bei einem Aufruf nur untestrichene, beim anderen umkreiste, beim dritten umkreiste rote zeichen etc.
Dadurch müsste ein Bot sehr viele dinge können... das schwierigste wäre , rauszufinden , was man eig. machen muss...
PyroGX
das mit der eingabe von bestimmten zeichen ist ne gute idee, werd ich noch mit einbauen
habe gerade noch nen paar linien zu meinem cpachte hinzugefügt
sind das zuviele oder zuwenige linien?
ich finds so eigentlich recht gut
/edit
ups, der hintergrund ist weis, aber transprent, deshalb scheint das forum die in der vorschau falsch darzustellen
lokal sind sie wieder ganz normal weis ohne transparenz, war nurnoch von nem test von vorhin übergebliegen
24Bytes
Die anzahl der linien ist i.O. aber, du solltest beim generieren der Buchstaben die Farben "merken" (in variable ablegen) damit du nicht gleichfarbige linien und buchstaben hast... kann für Benutzer zu schwer werden, es zu entzifern...
PS: Ich muss mich da auch mal dran setzen *g*
PyroGX
aktuell habe ich nur 10 farben, wenn ich die bereits angezeigten farben rausnehme bleiben da nachher garkeine mehr über bzw die botschreiber könnten einfach die hintergrundlinien komplett rausnehmen
die user können das captcha per JS und einem klick aber neu laden, allerdings (bisher geplant) nur jeweils einmal
wenn mans dann nochmal neu laden will ändert sich auch das was man eingeben soll (also dein vorschlag da)
bin gerade an der umsetzung
24Bytes
Zitat: |
Original von SiGa
=>Viele Zeichen, durcheinander im Bild, eingeben nur bestimmte Zeichen die unterstrichen sind
=>Viele Zeichen, durcheinander im Bild, eingeben nur bestimmte Zeichen die umkreist sind
=>Viele Zeichen, durcheinander im Bild, eingeben nur Zeichen um die ein quadrat existiert
=>Viele Zeichen, durcheinander im Bild, eingeben nur bestimmte Zeichen in einer bestimmten farbe |
Ich füge noch Rechenaufgaben hinzu... also rand(1,10) + rand(1,10) = ? eingeben
das wären dann max. 10 + 10 und das sollte jeder ausrechnen können... ohne taschenrechner
PS: Könntest du mir verraten wie du die linien hingekriegt hast ? (die funktion kenn ich wohl, aber bei mir siehts ein bissl *arghs* aus ... )
Und wenn du schon dabei bist, was zu verraten

wie willste das mit umkreisen/umquadraten/unterstreichen anstellen ? Auch durch "imageline" ? Oder bietet PHP da eine nette funk. an ? (Man merkt, ich habe bisher noch nicht mit Bildern in PHP gearbeitet)
PyroGX
Zitat: |
Original von SiGa
PS: Könntest du mir verraten wie du die linien hingekriegt hast ? (die funktion kenn ich wohl, aber bei mir siehts ein bissl *arghs* aus ... )
|
ich habe das in ner forschleife die die startpixel von oben bzw links immer um einen zufälligen wert erhöht und solange ausgeführt wird bis diese startpixelzahl höher als die höhe/breite des bildes
dann werden bei jedem durchlauf 4 variablen ebenfalsl per rand ermittelt die dann bestimmen wieviel pixel die linie von oberen/unteren/rechts/linken rand entfernt ist und um wieviel pixel der aktuelle startpixelwert erhöht/verrintert wird
gezeichnet wird die linie dann per imageLine
Zitat: |
Original von SiGa
Und wenn du schon dabei bist, was zu verraten
wie willste das mit umkreisen/umquadraten/unterstreichen anstellen ? Auch durch "imageline" ? Oder bietet PHP da eine nette funk. an ? (Man merkt, ich habe bisher noch nicht mit Bildern in PHP gearbeitet) |
wirklich auskennen tuhe ich mich da auchnicht
suche auf php.net rum und such mir da funktionen die passen
das quadrat und die linien werde ich wohl wirklich mit imageLine machen
bei dne kreisen weis ich auch nochnicht was man da machen könnte
lycoos
Es gibt auch die Alternative:
Du hast wieder ein Bild. Irgendwo in diesem Bild ist ein Kreis. Die Position des Kreises ist unterschiedlich. Du kannst das Formular nur dann abschicken, wenn du in diesen Kreis geklickt hast!
24Bytes
also koordinaten speichern und danach abfragen ? speichern sollte ja kein prob. sein, aber wie kann ich mit php rausfinden, wo etwas angeklickt wurde ? mit javascript ist es zwar kein problemm, aber meiner meinung nach zu unsicher
PyroGX
@lycoos
dieser schutz höhrt sich irgendwie nicht wirklich sicher an
nen kreis ist einfach zu lokalisieren, dann noch schnell klicken und fertig
zudem, wie wird das realisiert?
irgendwo müssen die erlaubten koordinaten ja stehen und wenn sie im html-code stehen kann sie jeder bot einfach auslesen, wenn sie im PHP-quellcode stehen müsste man die geklickten koordinaten ja ermittelln, wie macht man sowas?
24Bytes
imageloadfont("./font.ttf");
wenn ich das eingebe, wird mir stat der Grafik ein fehler angezeigt... "Grafik kann nicht angezeigt werden, weil Sie fehler enthält" o.O was mach ichn falsch ?
//EDIT das kam mit png... mit jpeg wird einfach die url des Scripts angezeigt
PyroGX
setz das header()-zeugs mal ganz ans ende über die zeile wo du das bild dann ausgibst
dann werden dir die fehler angezeigt
24Bytes
Error reading font in ... in line ...
hmm, werden nu bestimmte schriftarten unterstütz ? muss ich die vll. per fopen öffnen ? (chmod 777 hab ich scho o.O)
// EDIT habs gelöst
http://forum.de.selfhtml.org/archiv/2007/3/t148770/ google ist mein bester freund
PyroGX
kp, benutze die funktion "imagettftext" und da kann man einfach den pfad zur font-datei angeben
24Bytes
genau
//EDIT
Ich hab bisher folgendes bei mir eingebaut:
=>Unbekannte Bildergröße
=>Unbekannte Bilderahmen Farben
=>Unbekannte Schriftart*
=>Unbekannte Schriftgröße*
=>Unbekannte Schriftfarbe*
=>Unbekannte Position
=>Unbekannter Winkel
=>Unbekannte Anzahl an Zeichen
* = Gilt für jedes einzelne Zeichen
Unbekannt kann man auch als zufall betrachten
Es kommt noch :
=>Linien im Bild
=>Kreise im Bild
=>Nur bestimmte Zeichen eingeben (unterstrichen/umkreist/farbe/kombiniert)
=>Rechenaufgaben (1-10 + / - / * / / 1-10)
PyroGX
Zitat: |
Original von SiGa
Ich hab bisher folgendes bei mir eingebaut:
=>Unbekannte Bildergröße hab ich auch, allerdings nur bei der breite die sich nach der anzahl der zeichen richtet
=>Unbekannte Bilderahmen hab ich auch
=>Unbekannte Schriftart* hab ich auch
=>Unbekannte Schriftgröße* hab ich auch
=>Unbekannte Schriftfarbe* hab ich auch
=>Unbekannte Position hab ich auch
=>Unbekannter Winkel hab ich nochnicht, aber auch ne idee
=>Unbekannte Anzahl an Zeichen hab ich auch
Es kommt noch :
=>Linien im Bild hab ich auch
=>Kreise im Bild wie machste das nun?
=>Nur bestimmte Zeichen eingeben (unterstrichen/umkreist/farbe/kombiniert) wird gerade umgesetzt
=>Rechenaufgaben (1-10 + / - / * / / 1-10) wird ebenfalls gerade eingebaut |
das rote zeugs ist von mir
PyroGX
1 und 2 sind ohne linien im hintergrund, wenn man das auswählen muss werd ich die wohl weglassen
die kreise sind zwar nicht perfekt um die zeichen aber besser gehts eigentlich nicht, bzw ich habs nicht besser hinbekommen