Forum: PC-Programmierung Captcha?PHP?


von Justus P. (platinenpro)


Lesenswert?

Hey Leute,

Ich suche einen Code für ein Captcha. Meiner funktioniert nicht?

Mein Code:

 <?php
   session_start();
   unset($_SESSION['captcha_spam']);

   function randomString($len) {
      function make_seed(){
         list($usec , $sec) = explode (' ', microtime());
         return (float) $sec + ((float) $usec * 100000);
      }
      srand(make_seed());

      //Der String $possible enthält alle Zeichen, die verwendet werden 
sollen
      $possible="ABCDEFGHJKLMNPRSTUVWXYZabcdefghijkmnpqrstuvwxyz23456789";
      $str="";
      while(strlen($str)<$len) {
        $str.=substr($possible,(rand()%(strlen($possible))),1);
      }
   return($str);
   }

   $text = randomString(5);  //Die Zahl bestimmt die Anzahl stellen
   $_SESSION['captcha_spam'] = $text;

   header('Content-type: image/png');
   $img = ImageCreateFromPNG('captcha.PNG'); //Backgroundimage
   $color = ImageColorAllocate($img, 0, 0, 0); //Farbe
   $ttf = $_SERVER['DOCUMENT_ROOT']."/captcha/XFILES.TTF"; //Schriftart
   $ttfsize = 25; //Schriftgrösse
   $angle = rand(0,5);
   $t_x = rand(5,30);
   $t_y = 35;
   imagettftext($img, $ttfsize, $angle, $t_x, $t_y, $color, $ttf, 
$text);
   imagepng($img);
   imagedestroy($img);
?>

Muss irgendetwas auf meinem Server dafür installiert sein?

Danke schon mal

Justus

: Verschoben durch User
von Joachim D. (Firma: JDCC) (scheppertreiber)


Lesenswert?

Sinnlos diese Captchas, vergiß es.

Captchas (und auch diese dämlichen Mailadressen mit einem "ät")
können die Bots heute und Du belästigst damit nur die Benutzer
(3mal probiert, geht nicht und weg). Filtere die Eingaben auf
dem Server, dafür ist er da.

von Troll (Gast)


Lesenswert?

Mach ein input-Feld (kein hidden!) was unsichtbar (display:none) ist und 
deshalb von Benutzern nicht ausgefüllt wird. Wenn es trotzdem befüllt 
ankommt->Bot.

von Joachim D. (Firma: JDCC) (scheppertreiber)


Lesenswert?

Troll schrieb:
> Mach ein input-Feld (kein hidden!) was unsichtbar (display:none) ist und
> deshalb von Benutzern nicht ausgefüllt wird. Wenn es trotzdem befüllt
> ankommt->Bot.

Wäre im DOM aber für einen Bot auch leicht zu finden ...

Wie würdest Du einen Bot schreiben ? ;-)

von troll (Gast)


Lesenswert?

Joachim Drechsel schrieb:
> Wäre im DOM aber für einen Bot auch leicht zu finden ...
Auch wenns er auf User-Seite per JS eingebaut wird?

Aua, nicht hauen, ich sag ja nix!

von Troll (Gast)


Lesenswert?

Joachim Drechsel schrieb:
> Wäre im DOM aber für einen Bot auch leicht zu finden ...

Natürlich in einer extra CSS und nicht inline :)

<input type="text" name="email" class="haha" />

CSS-Datei:
.haha {
display:none;
}

Bisher hat das bei mir sehr gut funktioniert (besonders wenn man es nach 
üblichen Feldern benennt). Kein Bot hat es bisher damit geschafft seinen 
Müll zu verbreiten.

von troll (Gast)


Lesenswert?

*erst

von Troll (Gast)


Lesenswert?

troll schrieb:
> *erst

Ich beobachte dich! ಠ_ಠ

von Joachim D. (Firma: JDCC) (scheppertreiber)


Lesenswert?

Statt display:none; (was ja jeder Depp findet) würde ich das
einfach außerhalb des sichtbaren Bereichs positionieren (zB
position:absolute; left:-9999px;). Aber die Bots lernen schnell ...

von D. I. (Gast)


Lesenswert?

oder voll-transparent mit opacity

von Joachim D. (Firma: JDCC) (scheppertreiber)


Lesenswert?

grins

Jetzt sind in knapp 2,5 h schon so ein Paar Tips zusammengekommen.
Wieviel Hirmschmalz steckt in einem Bot ? :-)))

von Lukas T. (tapy)


Lesenswert?

Gegenfrage:
Wie hoch ist das Schadenspotential/die Gewinnmöglichkeiten. Beide recht 
hoch, also machen sich da mächtig viele Menschen dran zu schaffen.

Eigentlich traurig.

von Joachim D. (Firma: JDCC) (scheppertreiber)


Lesenswert?

Lukas T. schrieb:
> Wie hoch ist das Schadenspotential/die Gewinnmöglichkeiten. Beide recht
> hoch, also machen sich da mächtig viele Menschen dran zu schaffen.

Eben. Und stecken mehr wie 2,5 h Arbeit hinein. Also kann man auch
darauf vertrauen daß sie mit solchen Mätzchen auch automatisiert
zurechtkommen.

Es hilft nur eine serverseitige Entwanzung / Spamfilter.

Scriptkiddies kann so etwas abhalten, dafür vergrault man aber
die Leserschaft. Muß jeder für sich abwägen.

Als Betreiber der Site möchte ich ja, daß Interessenten möglichst
einfach und ohne halbverweste Intelligenztests bestellen oder mich
kontakten können. Mit dem Mißbrauch muß ich umgehen, nicht der
"ehrliche" Leser (dem pinkle ich nämlich damit ans Bein).

von D. I. (Gast)


Lesenswert?

Aus der Praxis ist man mit solchen einfachen Tricks schon den meisten 
üblichen Bots voraus. Recaptcha finde ich z.B. unbenutzbar.

Und so hardcore interessant ist die eigene Seite meist garnicht wie man 
denkt...

von Joachim D. (Firma: JDCC) (scheppertreiber)


Lesenswert?

D. I. schrieb:
> Aus der Praxis ist man mit solchen einfachen Tricks schon den meisten
> üblichen Bots voraus.

Klar. Aber Du mußt dann ständig bei allen Websites hinterher sein.
So reicht evtl. ein tentraler Filter.

Das Thema wird kontrovers diskutiert, wie immer gibt es nichts, was
100% funktioniert ... :-)

Ich persönlich tendiere zur benutzerfreundlichen Variante.

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?


von Weingut P. (weinbauer)


Lesenswert?

hatte früher so nen Käse öfters im Gästebuch meiner Seite, hab dann die 
Formularfelder umbenamt "ddd" "cht" "pqr" usw. usw. also nix mit "mail" 
oder "name", filtere seither nur noch ob im Namensfeld n @ oder www 
vorkommt und Ruhe ist.

Es geht ja nicht darum, dass die eigene Seite nicht wahnsinnig 
interessant ist, sondern damit nicht Stunden mit dem Aussortieren des 
Bot-Mülls zubringen zu müssen. Die hauen ihren Mist in alles rein ob 
interessant oder nicht.

von Justus P. (platinenpro)


Lesenswert?

Danke, Leute für so schnelle Antworten. Ich glaub ich nutze jetzt doch 
die Metode mit dem nicht sichtbaren Feld. Wie ich es es nicht erscheinen 
lasse, kann ich mir ja noch aus allen euren Antworten über legen.

DANKE!!!

von Jürgen W. (lovos)


Lesenswert?

Da fällt mir so spontan eine Geschäftsidee ein:
Da seit Jahren nach Möglichkeiten (erfolglos) gesucht wird, CAPTCHAS 
automatisiert zu lösen, könnte man die Captchas nach Indien weiterleiten 
wo sie von billigen Fachkräften gelöst werden und dann als Antwort 
zurückkommen.

D.h. irgendein Bot bearbeitet eine Website, trifft auf ein Captcha.
Dann schickt er das *.gif nach Indien, wartet auf die Antwort, und macht 
weiter.
Wenn man diesen Dienst für 5Ct / Captcha anbietet, könnte man ein 
Geschäft machen, d.h. der Inder bekommt 1,5Ct / Captcha.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Inder sind dafür viel zu teuer. Schon mal über Nordkorea nachgedacht?

von Jürgen W. (lovos)


Lesenswert?

> Schon mal über Nordkorea nachgedacht?

Nee, aber die Fachkräfte sollten schon mit dem lateinischen Alphabet 
vertraut sein. So einfach sind die Captchas nicht.

von Thosch (Gast)


Lesenswert?

so'n ähnliches "Geschäftsmodell" gab's doch schon mal.
(oder gibt es sogar immer noch?)
Der Botbetreiber setzt nebenbei 'ne P*rnoseite auf (irgendwo auf den 
Cayman-Inseln oder so) und läßt dort die abgefischten Captchas von den 
Seiten, die er zuspammen will, von den P*rno-Usern lösen...

So sparen die sich sogar noch bezahlte Leute zum Lösen...

Gruß,
Thosch

von Jürgen W. (lovos)


Lesenswert?

> a mere $2 for solving a thousand CAPTCHA's

Es gibt tausende solcher "CAPTCHA solving economies"
http://www.zdnet.com/blog/security/inside-indias-captcha-solving-economy/1835

Für die PayPal-Economies dürfte das auch ein einträgliches Geschäft 
sein.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.