PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : reCaptcha bei Anmeldung zum Schutz von "EF Anfragen Attacken"



Gremlin
19.11.2009, 16:37
Wie im aktuellen klamm NL berichtet gibt es einige Spaßvögel welche die Seiten mit Anmeldungen bombardieren, habe mir überlegt da schnell was für zu basteln.

und dachte an reCaptcha....

Deshalb mal hier mein kleines Tutorial, wäre super wenn einer drüber schauen könnte ist untested....

1) Download 29 und nach /lib/ hochladen

2) lib/functions.lib.php
Füge vor ?> folgendes ein:


// reCaptcha Public Key
// from http://recaptcha.net/api/getkey?app=php
$reCaptchaKey = '';
3) content/intern/anmelden.php
Füge direkt nach <?

@require_once('lib/recaptchalib.php');Suche:

if ($_POST['anmelden'] == "Jetzt anmelden!") {Füge danach ein:


/* Start reCaptcha */
$resp = recaptcha_check_answer ($reCaptchaKey,$ip,$_POST["recaptcha_challenge_field"],$_POST["recaptcha_response_field"]);
if (!$resp->is_valid) $error = $resp->error;
/* End reCaptcha */
Suche:


<tr>
<td class="main" align="center" colspan="2">
Vor dem Anmelden lese bitte die AGB!<br><br>
<input type="submit" name="anmelden" value="Jetzt anmelden!">
</td>
</tr>
Füge davor ein:


<tr>
<td class="main" align="center" colspan="2">
<?=recaptcha_get_html($reCaptchaKey);?>
</td>
</tr>
Kann das mal einer testen?

*edit*
Natürlich müsst ihr in der functions.lib auch euren key eingeben

didith1207
19.11.2009, 17:40
mir verschwindet der content und das rechte menue

Gremlin
19.11.2009, 17:44
ruf mal die anmelden.php direkt auf.

didith1207
19.11.2009, 17:56
Fatal error: Call to undefined function head() in /var/www balabla

Gremlin
19.11.2009, 17:58
ahjo also wenigstens kein syntaxfehler....

spiel mal hier bisschen mit dem pfad:
@require_once('../../lib/recaptchalib.php');

didith1207
19.11.2009, 18:09
funzt 1a mit

@require_once('lib/recaptchalib.php');


Anmeldefehler incorrect-captcha-solBitte fülle alle benötigten Felder aus!
Der Emailsyntax ist falsch!
Passwortlänge muss min. 8 Zeichen haben
Du musst die AGBs bestädigen!


Danke!

Gremlin
19.11.2009, 18:11
Geht auch Anmeldung durch, wenn es richtig ist?

didith1207
19.11.2009, 18:24
hmm...irgendwas ist da faul

incorrect-captcha-sol

Gremlin
19.11.2009, 18:32
Hast du deinen Code eingeben in der functions lib?

didith1207
19.11.2009, 18:51
ja klar...ohne gibt er ja sofort eine meldung das er feht

Gremlin
19.11.2009, 18:54
url?

didith1207
19.11.2009, 18:57
www.happywins.com

Gremlin
19.11.2009, 19:12
Seltsam versteh ich nun nicht.... laut doku von reCaptcha ist alles korrekt. Bau am besten nochmal aus und teste lokal bis es kleppt ich weßi grad nicht weiter!

didith1207
19.11.2009, 19:16
ok ich guck mir das in der nacht an muß noch was erledigen...

Holstenjungs
19.11.2009, 19:55
Wenn ich das richtig sehe, dann fehlt da noch der "privatekey" zur Kommunikation von deiner Seite zu deren Server. Zumindest ist der bei mir notwendig, ansonsten gibt es bei mir nur Fehlermeldungen.

didith1207
19.11.2009, 20:17
nö laut der dokumentation ist einfach die eingabe falsch gewesen:

incorrect-captcha-sol : The CAPTCHA solution was incorrect.

Holstenjungs
19.11.2009, 20:22
Ok, das ist dann etwas merkwürdig. Das Problem hatte ich leider noch nicht, sonst könnte ich dir da helfen.

jpwfour
19.11.2009, 20:25
a) Fehler im Formular :yes:

b) private/public haben schone eine Bedeutung.

--

a) In der anmelden.php müssen 2x 2 Zeilen vertauscht werden:



<table width="100%" cellpadding="3" cellspacing="0" border="0">
<form action="" method="post">
<!--- blaa --->
</form>
</table>
muss so aussehen:


<form action="" method="post">
<table width="100%" cellpadding="3" cellspacing="0" border="0">
<!--- blaa --->
</table>
</form>
b)
functions.lib.php:


// reCaptcha Public Key
// from http://recaptcha.net/api/getkey?app=php
$reCaptchaKey = '';
$reCaptchaKey2 = ''; //private key

anmelden.php:

/* Start reCaptcha */
$resp = recaptcha_check_answer ($reCaptchaKey2,$ip,$_POST["recaptcha_challenge_field"],$_POST["recaptcha_response_field"]);
if (!$resp->is_valid) $error = $resp->error;
/* End reCaptcha */

jpwfour
19.11.2009, 20:34
Btw: ReCaptcha halte ich nicht für sehr sicher........

Probiert mal aus, was passiert, wenn ihr bewusst falsch Eingaben macht, die aber shon ungefähr an das erwartete Ergebnis rankommen könnten.
Und genau das ist ja das, was OCR Software auch macht :biggrin1:

Bsp. steht klar erkennbar die Zahl "70" als ersts Wort da, als zweites "compaq", wobeibeim 2. maximal der erste Buchstabe nicht unebdingt als "c" erkennbar wäre, der Rest total deutlich zu erkennen.
Da das "c" so nah am "o" steht, könnte man es ja als "o" aufassen.

Also ich mal spasseshalber eingegeben:

"80 oompaq"

Wurde als "richtig" erkannt :der:

Mag ein Ausnahmefall sein, ich hab auch keine Lust, da noch lang weiterzutesten (gegen Test natürlich auch gemacht, es gibt sehr wohl die Meldung "falsch" :wink:).

Aber sowas hätte selbst die billigste OCR Software auch gerade noch hinbekommen....

didith1207
19.11.2009, 20:41
hmm.... auf alle fälle funktioniert das nun von jpwfour

jpwfour
19.11.2009, 21:11
Evtl. kann Gremlin dass in seinen Post aufnehmen (will nicht an Cheffes Beiträgen rumeditieren :biggrin1:).

Btw:
weil ich ja so gern Propaganda betreibe, hier noch paar Captchas, die man nicht verwenden sollte:
http://jdownloader.org/knowledge/wiki/development/captcha/supported-captchas

Holstenjungs
19.11.2009, 21:34
Btw: ReCaptcha halte ich nicht für sehr sicher........


Dem kann ich leider zustimmen. Ich habe jetzt von 20 Versuchen 19 als korrekt angezeigt bekommen ob wohl ich jedesmal beide Worte falsch geschrieben habe. Es ist zwar schön, dass das Ganze kostenlos ist, aber sicher macht es die Sache nicht. Schade dass man dort nicht einstellen kann dass beide Worte komplett richtig eingegeben werden müssen. Da hilft wohl nur ein eigener Captchacode oder kennt jemand einen Anbieter der ebenfalls kostenlos ist und bei dem es richtig funktioniert?
Ich habe jetzt auf Anhieb nur den hier gefunden: http://captchas.net/

Gremlin
19.11.2009, 21:40
Vorteil von reCaptcha ist, dass kein OCR die cracken kann, denn sonst würden sie dort nicht angezeigt :P

ElDani
19.11.2009, 21:56
hmm, aber was nützt es, wenn die Abfrage nie ein Nein zurück gibt?
hält das das EF-Script trotzdem auf?

jedenfalls schon mal danke :)

Gremlin
19.11.2009, 22:01
hmm, aber was nützt es, wenn die Abfrage nie ein Nein zurück gibt?
Tut sie ja, aber lässt halt auch paar Ungenauigkeiten durchgehen, weil das teil halt ja selbst nicht weiß was korrekt ist, und es da nur um statistik geht.

cr00sy
28.04.2011, 06:56
Morgen!

Laut Google wäre es möglich das man das Recaptcha auf deutsch umstellen kann indem man bei lang das en mit de austauscht (http://code.google.com/intl/de-DE/apis/recaptcha/docs/customization.html#i18n). Wie ist das bei diesem Addon möglich?

/erledigt

cr00sy
18.10.2011, 19:38
Hey,

sorry für den Doppelpost, ist ja aber auch schon einige zeit her.

Habe eine frage:
Wie mach ich das Recaptcha in das Userprofil beim Account löschen?

Ich habe nun folgendes, aber das funktioniert nicht wirklich:

Nach <?

@require_once('lib/recaptchalib.php'); Nach

if ($_POST['acc_del'] == 'Jetzt löschen!' && $_POST['del_passwort']) { das:


/* Start reCaptcha */
$resp = recaptcha_check_answer ($reCaptchaKey2,$ip,$_POST["recaptcha_challenge_field"],$_POST["recaptcha_response_field"]);
if (!$resp->is_valid) $error = $resp->error;
/* End reCaptcha */
und so siehts am ende aus:

<input type="Submit" name="acc_del" value="Jetzt löschen!">
</form>
<div align="center"><font color="#cc0000">Bei Löschung des Accounts bist Du für 30 Tage für eine Neuanmeldung gesperrt!</font></div>
<br>
<tr>
<td class="main" align="center" colspan="2"><br />
Bitte gebe die beiden Wörter in das Textfeld ein.
<?=recaptcha_get_html($reCaptchaKey);?></td>
</tr>
</div>Kann mir jemand sagen was da nicht stimmt? Er verhält nich noch ganz normal, er checkt das Losepasswort und merkt das es falsch/richtig ist und das Captcha reagiert überhaupt nicht.

Exportforce
21.10.2011, 06:05
Daumen Hoch!
reCaptcha (Von faulen verhasst und ohne Grund runter gemacht) ist einfach immernoch das stärkste System, obwohl man Fehler machen darf, hat sich auf keine unserer Seiten, oder Seiten für die ich Arbeite, jemals ein Bot das Captcha gelöst und ich hab Communities die haben ein paar zig tausend User.

Hoffe dies wird fix eingebunden.
Auch schön wäre eventuell beim Bannerklicken alle X Banner ein kleines Captcha. Aber nicht in der Bannerübersicht sondern während der Vergütung. So z. B. alle 20 oder 50 Banner. Besser ginge es nicht gegen Bots und Autoklicker.