Neuigkeiten:

still alive...

Hauptmenü

CAPTCHAs mittels \"intelligenter\" Abfrage

Begonnen von k00ni, 06. Dezember 2007, 13:51:01

Vorheriges Thema - Nächstes Thema

k00ni

Wie ich vor einigen Tagen in diesem http://www.codinghorror.com/blog/archives/001001.html\" rel=\"external nofollow\">Blog-Post gelesen hatte, scheint es bei einem Großteil der Captchas nun möglich zu sein, diese zu umgehen. Auch das hier im pSys eingesetzte fällt darunter.
Ich habe mir gerade überlegt, wie man dass effektiver gestalten könnte. Das gute ist, dass es noch keine KI gibt, die die denken kann. Deshalb muss man die Bots mit Abfragen konfrontieren, die sie zwar im schlimmsten Falle auswerten, aber nicht beantworten können. Dies wären Dinge wie: Wieviel Elefanten siehst du? Gibt es hier einen Vogel auf dem Bild? usw. usf.
Wenn nun die Abfrage noch quer Beet alles mögliche abfragt, also auch Dinge wie Buchstaben, Muster oder Bilder mit viel Inhalt (Gibt es hier ein Bild mit Eifelturm), dann wäre es ja für eine Maschine nahezu unknackbar.
Implementiert wäre das Ganze recht einfach. Man nutzt den bisherigen Algorithmus. Nur baut man da keinen Text mit Buchstaben und Zahlen ein, sondern man zeigt halt verschiedene Bilder in einem neuen Bild an. Da hier der Platz begrenzt ist, müssen diese kleiner und gut sichtbar sein. Im Hintergrund kann man dann im Skript die verschiedenen Fälle hart implementieren oder ggf. auch zufällig mehrere einzelne Fälle abfragen. Oder man setzt eine Datenbank in den Hintergrund, wobei das schon fast wieder zu umfangreich wäre.
Was haltet ihr von der Idee?

Powie


Wie ich vor einigen Tagen in diesem Blog-Post gelesen hatte, scheint es bei einem Großteil der Captchas nun möglich zu sein, diese zu umgehen. Auch das hier im pSys eingesetzte fällt darunter.[/quote]
Tell news.
Ich habe mir gerade überlegt, wie man dass effektiver gestalten könnte. Das gute ist, dass es noch keine KI gibt, die die denken kann.[/quote]
Prinzipiell ist dies natürlich korrekt; die Einschränkung auf KI spiegelt nur leider die Realität nicht wieder. In einigen Ländern ist Arbeitskraft sehr billig. Außerdem gibt es schon seit Verbreitung von CAPTCHA Websites, die User zum Lösen von fremden CAPTCHA missbrauchen.
Was haltet ihr von der Idee?[/quote]
Ich habe vor längerer Zeit mal an einer Studie teilgenommen, die ein ähnliches Verfahren als Zugangsregelung für Banken untersucht hat. War, soweit ich mich erinnern kann, recht erfolgreich. Live habe ich das allerdings noch nirgends gesehen.
Wenn Du sicherstellen kannst, dass die Bilder ausreichend gute Qualität haben und die Fragen nicht zu kompliziert sind, ist dies eine gute Idee. Achte aber darauf, dass ca. 4-6% aller Deutschen von Dyskalkulie oder Legasthenie betroffen sind.

k00ni

Ich habe gerade mal etwas herumprobiert. Folgender Code erzeugt mir ein Bild. Nun sollte eigentlich ein weiteres Bild daraufgelegt werden, nur irgendwie macht er es nicht. Das Hintergrundbild wird sauber angezeigt, nur leider ohne das zweite Bild.
 

_S_background);     
// Bild erzeugen
$pcap_im = ImageCreateTrueColor($this->_I_width, $this->_I_heigth);
imagecopyresampled($pcap_im, $bg, 0,0,0,0, $this->_I_width, $this->_I_heigth, ImageSX($bg),ImageSY($bg));
$get_image = ImagePNG ($pcap_im);
$show_image = ImageCopy ($get_image, ImageCreateFromPNG($this->_S_picture_folder. \\\'/elefant_1.jpg\\\'), 100, 100, 10, 10, 150, 100);
// Bild auf Interlace = 1 stellen. (Lädt das Bild streifenweise und nicht in einem Zug)
imageinterlace($pcap_im,false);
// Bild ausgeben        
$pcap_image = \\\'image.png\\\';
// sending image
header(\\\'Content-type: image/png\\\');
$pcap_image($pcap_im);
?>

 
 
Bei PHP in Verbindung mit Bildern bin ich ne Niete. Jemand eine Idee?

Da sind Syntax-Fehler drin. Wie kommst Du zu $this?

k00ni

Weil ich das in einer Klasse drin habe. Bevor du raten musst, hier die Klasse:
Das Ding wird wie beim Captcha im pSys über ein img-Tag eingebunden.
[edit]UPDATE: Da der Code hier total zerhackt wurde, hab ich die Datei mal angehängt.[/edit]

Also, ich habe das mal mit der GD-Lib (*) getestet und konnte innerhalb des gegebenen Zeitrahmens kein ordentliches Ergebnis bringen. Ich wollte zwei transparente PNG in ein neues, transpartes PNG mergen - anscheinend hat die GD-Lib bei solchen Aktionen Probleme.
Ein Merge mit imagick (**) war in kurzer Zeit auf der Konsole mit sehr befriedigenden Ergebnissen erledigt.
* Ich mochte die GD-Lib noch nie wirklich - schon als Perl-Programmierer habe ich die Nutzung der GD-Lib immer vermieden. Ich habe keinen guten Eindruck von der GD-Lib.
** Während ich imagick schon lange schätze. Es gibt auch ein entsprechendes PECL-Modul.

k00ni

Während ich imagick schon lange schätze. Es gibt auch ein entsprechendes PECL-Modul.[/quote]
Ist das ein Modul, was auch auf (vielen) Hostern installiert ist oder muss dass in den meisten Fällen nachinstalliert werden? Ich frage mich was daran so schwer sein soll und warum dass GD-Lib scheibar nicht packt.
Ich wollte zwei transparente PNG in ein neues, transpartes PNG mergen - anscheinend hat die GD-Lib bei solchen Aktionen Probleme.[/quote]
Dies bräuchte ich eigentlich nicht. Mir würde es reichen wenn man 3 - 5 Bilder übereinander legen kann, nur halt etwas versetzt. Mal schauen, ob ich da mal etwas Code im Netz finde.
In Kürze werden wir da etwas präsentieren... Ein wenig Geduld.[/quote]
Na, wenn ihr mir die Arbeit abnehmt, dass wäre schön! Könntet ihr auch noch meine Übungserien in MuP machen? :ugly:


Ist das ein Modul, was auch auf (vielen) Hostern installiert ist oder muss dass in den meisten Fällen nachinstalliert werden?[/quote]
Das kann ich nicht abschätzen. Das Modul ist vermutlich nicht so weit verbreitet; allerdings kann man imagemagick auch über die Shell ausführen, also über php:exec(), php:system() und Co.
Ich frage mich was daran so schwer sein soll und warum dass GD-Lib scheibar nicht packt.[/quote]
Keine Ahnung, was genau das Problem ist.
Dies bräuchte ich eigentlich nicht. Mir würde es reichen wenn man 3 - 5 Bilder übereinander legen kann, nur halt etwas versetzt. Mal schauen, ob ich da mal etwas Code im Netz finde.[/quote]
Naja, aber die Bilder sollen doch zusammengefügt werden. Wenn Du drei Bilder übereinander legst, wird nur das letzte Bild angezeigt. Oder willst Du die Bilder composen, also bestimmte Teile ausschneiden und nebeneinander abbilden?
Könntet ihr auch noch meine Übungserien in MuP machen?[/quote]
Gerne. Du darfst dann für mich öffentliche Finanzen und internationale Rechnungslegung machen.

k00ni

Naja, aber die Bilder sollen doch zusammengefügt werden. Wenn Du drei Bilder übereinander legst, wird nur das letzte Bild angezeigt. Oder willst Du die Bilder composen, also bestimmte Teile ausschneiden und nebeneinander abbilden?[/quote]
Eigentlich nur 3 - 5 Bilder nebeneinander. Vielleicht an ein paar Stellen überdeckt, aber ansonsten nebeneinander. Direkt übereinander bringt mir ja nichts, da man dass unterste Bild ja nicht sieht. Ich habe bisher keine Zeit gefunden, hier weiterzuarbeiten.
Gerne. Du darfst dann für mich öffentliche Finanzen und internationale Rechnungslegung machen.[/quote]
Mit dem \"ihr\", warst nicht du angesprochen. /uploads/emoticons/icon_e_biggrin.gif.1a84f5257b36e14b36d04985314f877f.gif\" alt=\":-D\" />

all your base are belong to us