• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

reCaptcha über Javascript an PHP weitergeben

Timer

Mitglied
Hey,
ich habe folgende Methode benutzt, um ein Register Form zu erstellen (damit bei einem bereits vergebenem Username o.ä. die Seite nicht automatisch aktualisiert):
http://www.ondeweb.in/ajax-login-form-with-jquery-and-php/
Nun habe ich das reCaptcha von Google hinzugefügt. Leider weiß ich nicht, wie ich das bei meinem Javascript Skript (das die Daten an ein PHP Skript übergibt) abfragen kann, ohne dass es gefaket werden kann (denn sonst ist der Bot-Schutz unnötig). Meine einzige Möglichkeit, die ich gefunden habe ist folgende (kann jedoch in jedem Browser durch ändern von rResponse in z.B. 1 gefaket werden):
Code:
rResponse=grecaptcha.getResponse();
if(rResponse.length==0) {
    $(".g-recaptcha>div").css("border", "red 2px solid");
    rDie=1;
}

Mein kompletter Code (bzw der, der hierfür notwendig ist):
HTML:
<form id="registerForm" method="post">
    <div class="registerHalf">
    </div>
    <div class="registerHalf">
        <div class="g-recaptcha" data-sitekey="6Lc1sk4UAAAAAOmQIAIxEgsSZH9jazwG4o9QX-Cw"></div>
    </div>
    <input id="registerSubmit" type="submit" value="Register Now">
</form>
<script src="/scripts/register.js"></script>
<script src='https://www.google.com/recaptcha/api.js'></script>
Code:
$(document).ready(function(){
    $("#registerSubmit").click(function(){
        rUsername=$("#rUsername").val();
        rFirst=$("#rFirst").val();
        rLast=$("#rLast").val();
        rEmail=$("#rEmail").val();
        rPassword=$("#rPassword").val();
        rPassword2=$("#rPassword2").val();
        rDay=$("#registerInputDay").val();
        rMonth=$("#registerInputMonth").val();
        rYear=$("#registerInputYear").val();
        if(rDie==0) {
            $.ajax({
                type: "POST",
                url: "../php/register.php",
                data: "rUsername="+rUsername+"&rFirst="+rFirst+"&rLast="+rLast+"&rEmail="+rEmail+"&rPassword="+rPassword+"&rPassword2="+rPassword2+"&rDay="+rDay+"&rMonth="+rMonth+"&rYear="+rYear,
                success: function(html){   
                    if(html=='true')    {
                        window.location="../registered.php";
                    }
                },
                beforeSend:function()
                {
                }
            });
        }
        return false;
    });
});
Wie kann man das mit meinem bisherigem Code machen?
 
Werbung:
eigentlich ist das kein problem da ein captcha zwischen zu bauen .Das Problem ist bei den goggle müll das jede Seite sein eigenen key hat .
Habe mir auch mal so ein key geholt ,aber irgendwie läuft das alles nicht.
Am besten baust du dir ein eigenen Capacha,weil will ja keiner mehr sehen die Bilder .Musst du 20 mal klicken bevor es weiter geht .
Mach dir selber einen mit einer kleinen rechen aufgabe oder so was ,geht schneller und nervt nicht so doll wie der google Müll.
Am bestenn ist kein captcha und sich anders schützen.

Naja mußt du wissen
Ich habe bei codepen einen gefunden der so läuft wie du es haben möchtest.
Habe auch versucht den auf mein key zum laufen zu bringen aber hat nicht geklappt.
Vieleicht hast du ja mehr glück
https://codepen.io/indigo-szarouski/pen/dWKQvL
 
Ich habe auch einige Zeit gebraucht bis ich das mit dem reCaptcha hinbekommen habe, sodass es einigermaßen funktioniert. Hast recht, dass das sehr dumm gemacht ist.
Jedoch ist das Problem, dass irgendwelche Rechnungen wie "5 x 5" inzwischen von KIs gelöst werden können (und das ist echt nicht schwer (habe ich auch schon als Rache bei der ein oder anderen Seite von Freunden gemacht :rolleyes: ))
Auch, wenn ich das in Form von Bildern mache, kann man das einfach umgehen. Man geht einfach alle Bilder durch und schreibt für jedes Bild (die haben ja alle unterschiedliche Dateinamen) das Ergebnis auf und übergibt das an den Bot

EDIT:
Habe gerade das von Codepen angeschaut und bemerkt, dass das das Invisible Captcha von Google ist und das spinnt teilweise (hat mich schon mehrere male als Bot bezeichnet und sich geweigert mir die Bildauswahl zu zeigen). Ich würde da lieber das reCaptcha V2 von Google nehmen, da mir da noch nie solche Bugs untergekommen sind.
Hast da auch ne Idee wie man das mit V2 machen kann? Denn da muss man ja normalerweise über PHP $_POST das Ergebnis abfragen. Da ich jedoch bei javascript nur Daten über z.B. '$("#...").val();' abfragen kann müsste ich da das richtige wissen was ich statt val() einsetzen muss (da das Google Recaptcha ja kein Inputfeld hat, sondern das einfach direkt übermittelt)
 
Zuletzt bearbeitet:
Werbung:
Ich muß noch mal etwas googeln.Habe gar nicht bemerkt das es zwei verschiedene captchas sind .Wie man das machen könnte habe ich schon im Kopf ,aber erklären bin ich echt zu doof und ob es dann überhaupt klappt ist noch eine andere sache.
Warum sendest du den über Javascript und machst das nicht über <form action=""></form>??
Aber ich mache mich mal gerade etwas schlau mit den goggle kram und versuche dann was funktionierendes zu erstellen.
Außer wenn vorher einer schneller ist darf er es gerne tun .

Habe gerade gelesen das es auch nur auf Seiten geht die https:// als Adresse haben.
Das kann bei mir gar nicht laufen.So ein Mist
 
Zuletzt bearbeitet:
@basti1012
Ich versende das Form über Javascript, da sonst die Seite immer automatisch aktualisiert wird. Beispiel: ich gebe den Username "Timer" ein (bei der Registrierung) und der ist bereits vergeben. Das muss ich ja über PHP abfragen und dann wird trotz doppeltem Username die Seite aktualisiert. Ich weiß, ich könnte die zuvor eingegebenen Daten dann an die neue Registrierungsseite übergeben, um die Daten beizubehalten, jedoch verbraucht das unnötige Ressourcen (was besonders am Handy ohne Highspeed nervig ist)
Wegen dem https: Meinst du die invisible oder V2 Methode? Denn ich habe die V2 mal testweise auf einer Seite mit einem normalen Form eingefügt und da funktioniert es (trotz fehlendem https)

@m.scatello
Die Methoden kenne ich und die fucken mich auf vielen Seiten ab. Da Browser wie Google Chrome auch nach solchen Begriffen wie E-Mail zum automatischen Ausfüllen suchen, wird oftmals mein Browser fälschlich als Bot erkannt, da dann das Fake E-Mail Feld ausgefüllt wird. Das mit der benötigten Zeit zum Tippen abfragen ist auch recht schlecht, da wieder das Auto Fill als Bot erkannt wird (da dies die Felder in weniger als 1s alle ausfüllt).
Auch ist meine Webseite dann nicht von gezielten Spam-Angriffen geschützt, da jeder, der die Seite genauer anschaut, diese entdeckt.
 
Werbung:
Ich glaube das submit kann man abfangen und unterbinden.Muss ich aber selbst nochmal googlen.
Ich bin immer noch dafür selber was zu erfinden.Den Besuchern wird mal was neues gezeigt und du bist nicht auf den google Zeug angewiesen.
Ich hatte letzten Monat mal langeweile und den Captcha gemacht http://sebastian1012.bplaced.net/Meine_Scripte/scripte_fertig_zum_einbauen/eigener-capacha.php
Die meisten fanden das vom Design miserable ,aber das ist auch nicht meine stärke.
Es geht ja nur darum was man machen könnte ,und für diesen Capcha wird es wohl noch kein Bot geben der ihn Knackt.( Irgedwann bestimmt wenn ihn genug Leute benutzen ).
In diesen Script sende ich die Daten auch über Javascript an mein Php Script .
Vieleicht kannst du dir zumindest das da raus schreiben wenn du es gebrauchen kannst
 
Ist eine gute Idee.
jedoch, falls dich jemand gezielt zusapmen will, kann er die Klicks einfach aufnahmen und wiedergeben. Und dann (denke ich zumindest) bringt das auch nichts.
Hat zwar kurz gedauert, jedoch habe ich es auch so knacken können, sodass man nicht die Bewegungen abspielen muss. Man lässt was oben reinschreiben und dann "senden" drücken. Dann setzt man alles was unsichtbar ist mit display: block !important; dauerhaft auf sichtbar. Und dann kann man schön ruhig auf den unteren senden Button drücken. Zwar könnte das ein Bot, der das einfach bei allen Register Formularen (die er im Internet findet) ausprobiert automatisch nicht herausfinden, jedoch ist das bei gezielten Spam-Attacken einigermaßen leicht zu umgehen
 
Werbung:
Das script könnte man aber noch verbessern ,zb das ein Button erst sichtbar wird wenn er vom Php generiert wird oder so.Dann bring den einfach sichtbar machen auch nix mehr.
Aber man könnte so viel machen aber
wenn man geziehlt ein zu spamen will kann man wohl fast alle Captchas umgehen.
Aber ist mal nee gute idee was zu bauen wo der Bot nicht so einfach ran kommt.
Aber mal so gefragt ;@m.scatello schickt hier ja Links wie man sich schützen kann ohne Captcha.
Wofür brauchst du den Captcha den ?.Für die Email sache sollte man sich die Links vieleicht genauer ankucken.
Wenn du mit den Catcha aber was anderes schützen ,bzw erschweren willst sollte man sich mal überlegen wie man es noch verbesser kann.
Hast du dir im mein Script angekuckt wie das mit Ajax ans Php senden kann ?
 
Ich habe nun die Fallen von m.scatello eingebaut, damit die Seite zumindest ein bisschen von Bots geschützt ist. Zusätzlich muss man seine E-Mail innerhalb von 3 Monaten verifizieren, sonst wird der Acc nach mehreren Vorwarnungen gelöscht. Das verhindert zwar nicht den gezielten Spam gegen den MYSQL Server (sodass die Verbindung langsamer wird), jedoch verringert das schon einmal den benötigten Speicher.
@basti1012
Hast mich gerade durch deinen letzten Kommentar auf die Idee gebracht, dass ich abfrage, ob der grüne Hacken sichtbar ist (von Googles reCaptcha) und dann wird erst die Registrierung möglich.
Welches Skript meinst du? Das erste hat mir nicht allzu viel gebracht das zweite hat mir das gebracht, was ich gerade geschrieben hab
Den Captcha brauche ich, da ich es gut genug kenne, dass einer meiner Seiten (hatte damals ein paar eigene Server und dafür ein Forum) mit Registrierung zugespamt wird.

Das ist zwar nun keine 100%iger Spamschutz, jedoch braucht man nun schon ein bisschen Erfahrung und dann kann nicht jeder 9-jähriger einen nerven.
 
Hast mich gerade durch deinen letzten Kommentar auf die Idee gebracht, dass ich abfrage, ob der grüne Hacken sichtbar ist (von Googles reCaptcha) und dann wird erst die Registrierung möglich.
.
So kann man es auch machen. Wenn du die sachen aus @m.scatello Links mit bedacht hast und dann noch den Captcha ,dann sollte es ja erstmal zimlich sicher sein .Wenn dich aber ein geziehlt ärgern will der baut sich ein Bot zusammen der genau auf deine Page passt.
Aber wer macht so was ,ein leihe der nur etwas Werbung machen will wird sich solche mühe nicht mache,
Die jetzigen Bots sollten dich jetzt erstmal in ruhe lassen.
Die Bots bauer werden zwar auch immer weiter entwickelt,aber das kann ja noch dauern.
Dann seh mal zu das du es hin bekommst mit der Hacken abfrage ,und meld dich wenn du es hin bekommen hast
 
Werbung:
Das mit dem reCaptcha ist nicht allzu schwer. Eines der divs, die bei der Position des Hackens sind, wird beim erfolgreichen Aktivieren des Captchas auf display: none; gesetzt. Das muss man nur abfragen
 
Zurück
Oben