it-swarm.com.de

Verwenden von reCAPTCHA für localhost

Ich entwickle eine Website mit PHP und möchte in einer der Sitzungen eine menschliche Überprüfung durchführen. Für die Entwicklung führe ich das System zunächst lokal aus und wenn es fertig ist, werde ich es in einer bestimmten Domäne anlegen.

Auf der reCAPTCHA-Website heißt es, dass das Plugin nur auf der angegebenen Domäne (und den untergeordneten Domänen) funktioniert.

Meine Frage ist: Gibt es eine Möglichkeit, das reCAPTCHA-Plugin auf einem localhost zu verwenden?

221
rlc

Aktualisieren

Die ursprüngliche Antwort ist nicht mehr korrekt. Im Entwicklerhandbuch heißt es nun:

"Wenn Sie" localhost "für die Entwicklung verwenden möchten, müssen Sie es der Liste der Domänen hinzufügen."

Dies funktioniert nur, wenn Sie auf localhost mit 127.0.0.1/... statt mit localhost/... zugreifen. 

Die ursprüngliche Antwort bleibt unten erhalten.


Gemäß dem reCAPTCHA-Entwicklerhandbuch :

"localhost-Domains werden standardmäßig nicht mehr unterstützt. Wenn Sie sie weiterhin für die Entwicklung unterstützen möchten, können Sie sie zur Liste der unterstützten Domains für Ihren Site-Key hinzufügen. Wechseln Sie zur Admin-Konsole, um Ihre Liste der unterstützten Domains zu aktualisieren Verwenden Sie einen separaten Schlüssel für die Entwicklung und Produktion, um Localhost auf Ihrem Produktionsstandortschlüssel nicht zuzulassen. "

Verwenden Sie also einfach den gleichen Schlüssel.

288
Nathan Osman

Bitte beachten Sie, dass ReCaptcha localhost ab 2016 nicht mehr naiv unterstützt . Aus der FAQ:

localhost-Domänen werden standardmäßig nicht mehr unterstützt. Wenn du es wünschst Unterstützen Sie sie weiterhin für die Entwicklung. Sie können sie der Liste hinzufügen von unterstützten Domains für Ihren Site-Schlüssel. Gehen Sie zur Admin-Konsole zu Aktualisieren Sie Ihre Liste der unterstützten Domänen. Wir empfehlen, einen separaten Schlüssel zu verwenden für die Entwicklung und Produktion und um localhost auf Ihrem .__ nicht zuzulassen. Produktionsstandortschlüssel.

Fügen Sie einfach localhost zu Ihrer Domain-Liste für Ihre Site hinzu und Sie sind gut.

93
CC Inc

Es ist so einfach:

  1. Gehen Sie zu Ihrem google reCaptcha Admin Panel
  2. Fügen Sie localhost & 127.0.0.1 zu Domänen einer neuen Site hinzu (siehe folgendes Bild).

 enter image description here


Update:

Wenn Ihre Frage ist, wie Sie reCaptcha in Google-Site für die Verwendung in localhost festlegen, wurde ich oben darüber geschrieben. Wenn Sie jedoch neugierig sind, wie Sie reCAPTCHA auf beidelocalhost und website Host von minimal verwenden können Codes in Ihrem Controller und verhindern einige Codes wie ConfigurationManager.AppSettings["ReCaptcha:SiteKey"], dann helfe ich Ihnen mit dieser zusätzlichen Beschreibung und Codes in meiner Antwort.

Magst du die folgenden Aktionen GET und POST?

Es ???? unterstützt reCaptcha und benötigt keine weiteren Codes zur Handhabung von reCaptcha.

[HttpGet]
[Recaptcha]
public ActionResult Register()
{
    // Your codes in GET action
}

[HttpPost]
[Recaptcha]
[ValidateAntiForgeryToken]
public ActionResult Register(RegisterViewModel model, string reCaptcha_SecretKey){
   // Your codes in POST action
   if (!ModelState.IsValid || !ReCaptcha.Validate(reCaptcha_SecretKey))
   {
       // Your codes
   }
   // Your codes
}

In View: ( reference )

@ReCaptcha.GetHtml(@ViewBag.publicKey)

@if (ViewBag.RecaptchaLastErrors != null)
{
    <div>Oops! Invalid reCAPTCHA =(</div>
}

Um es zu benutzen

A) Fügen Sie Ihrem Webprojekt die folgende ActionFilter hinzu:

public class RecaptchaAttribute : FilterAttribute, IActionFilter
{
    public void OnActionExecuting(ActionExecutingContext filterContext)
    {
        var setting_Key = filterContext.HttpContext.Request.IsLocal ? "ReCaptcha_Local" : "ReCaptcha";
        filterContext.ActionParameters["ReCaptcha_SecretKey"] = ConfigurationManager.AppSettings[$"{setting_Key}:SecretKey"];
    }

    public void OnActionExecuted(ActionExecutedContext filterContext)
    {
        var setting_Key = filterContext.HttpContext.Request.IsLocal ? "ReCaptcha_Local" : "ReCaptcha";
        filterContext.Controller.ViewBag.Recaptcha = ReCaptcha.GetHtml(publicKey: ConfigurationManager.AppSettings[$"{setting_Key}:SiteKey"]);
        filterContext.Controller.ViewBag.publicKey = ConfigurationManager.AppSettings[$"{setting_Key}:SiteKey"];
    }
}

B) Fügen Sie die reCaptcha-Einstellungsschlüssel für beide localhost und website in Ihre webconfig-Datei ein:

<appSettings>

    <!-- RECAPTCHA SETTING KEYS FOR LOCALHOST -->
    <add key="ReCaptcha_Local:SiteKey" value="[Localhost SiteKey]" />
    <add key="ReCaptcha_Local:SecretKey" value="[Localhost SecretKey]" />
    <!-- RECAPTCHA SETTING KEYS FOR WEBSITE -->
    <!--<add key="ReCaptcha:SiteKey" value="[Webite SiteKey]" />
    <add key="ReCaptcha:SecretKey" value="[Webite SecretKey]" />-->

    <!-- OTHER SETTING KEYS OF YOUR PROJECT -->

</appSettings>

Hinweis: Auf diese Weise mussten Sie den Parameter reCaptcha_SecretKey im post action oder einer beliebigen ViewBag für reCaptcha nicht manuell in Ihren Aktionen und Ansichten festlegen. Alle werden zur Laufzeit automatisch mit den entsprechenden Werten gefüllt Je nachdem, ob Sie das Projekt auf dem Localhost oder der Website ausgeführt haben. ????

46
RAM

Das hat für mich funktioniert:

"Mit den folgenden Testschlüsseln erhalten Sie immer No CAPTCHA und alle Überprüfungsanforderungen bestehen.

Standortschlüssel: 6LeIxAcTAAAAAJcZVRqyHh71UMIEGNQ_MXjiZKhI

Geheimer Schlüssel: 6LeIxAcTAAAAAGG-vFI1TnRWxMZNFuojJ4WifJWe

Das reCAPTCHA-Widget zeigt eine Warnmeldung an, die besagt, dass es sich ausschließlich um Testzwecke handelt. Bitte verwenden Sie diese Schlüssel nicht für Ihren Produktionsverkehr. "

Von hier entnommen: https://developers.google.com/recaptcha/docs/faq

BR!

25
Pablo

Google hat kürzlich die Änderung von localhost gestoppt. (wie von @Artur Cesar De Melo angesprochen) Dies ist unter ihren FAQs:

Ich erhalte eine Fehlermeldung "Localhost ist nicht in der Liste der unterstützten Domänen enthalten". Das hat vorher funktioniert, was soll ich tun?  

localhost-Domänen werden standardmäßig nicht mehr unterstützt. Wenn Sie sie weiterhin für die Entwicklung unterstützen möchten, können Sie sie zur Liste der unterstützten Domänen für Ihren Site-Schlüssel hinzufügen. Rufen Sie die Administrationskonsole auf, um Ihre Liste der unterstützten Domänen zu aktualisieren. Wir empfehlen, einen separaten Schlüssel für die Entwicklung und Produktion zu verwenden und Localhost auf Ihrem Produktionsstandortschlüssel nicht zuzulassen.

1: Erstellen Sie einen separaten Schlüssel für Ihre Entwicklungsumgebung

2: Fügen Sie der Liste der zulässigen Domänen 127.0.0.1 hinzu

3: Speichern Sie die Änderungen und lassen Sie bis zu 30 Minuten Zeit, damit die Änderungen wirksam werden

8
tony09uk

Laut Google Recaptcha Dokumentation

localhost-Domänen werden standardmäßig nicht mehr unterstützt. Wenn du es wünschst Unterstützen Sie sie weiterhin für die Entwicklung. Sie können sie der Liste hinzufügen von unterstützten Domains für Ihren Site-Schlüssel. Gehen Sie zur Admin-Konsole zu Aktualisieren Sie Ihre Liste der unterstützten Domänen. Wir empfehlen, einen separaten Schlüssel zu verwenden für die Entwicklung und Produktion und um localhost auf Ihrem .__ nicht zuzulassen. Produktionsstandortschlüssel

4

Entfernen Sie den aktuellen REcaptcha-Schlüssel, registrieren Sie dann den neuen Schlüssel und stellen Sie Ihre Schlüsseleinstellungen mit Domänen ein: 127.0.0.1 localhost

4
Mykhailo

Recaptcha funktioniert nicht mit localhost/

Use `127.0.0.1/` instead of `localhost/`
3
alianjum0

Wenn Sie einen alten Schlüssel haben, sollten Sie Ihren API-Schlüssel neu erstellen. Beachten Sie auch Proxies.

1

https://developers.google.com/recaptcha/docs/domain_validation

Überprüfen Sie den Teil, in dem Sie die Überprüfung deaktivieren können. Tun Sie es nur für die Entwicklung. 

1
Siddharth Tyagi

Sie können "localhost" oder "127.0.0.1" schreiben, die URL muss jedoch gleich sein

Beispiel: Google Domains Add-> localhost-URL => localhost/login.php

Beispiel: Google Domains Add-> 127.0.0.1 URL => 127.0.0.1/login.php

1
Merty
  1. Registrieren Sie Ihre Website unter - https://www.google.com/recaptcha/admin
  2. füge js plugin 3.add class und deinen von google bereitgestellten site-key hinzu enter image description here
<script src='https://www.google.com/recaptcha/api.js'></script>
 <div class="g-recaptcha" data-sitekey="your site-key"></div>
0
Saquib Azam

Ich habe kürzlich an der Erstellung einer Website mit Recaptcha v2 gearbeitet, und ich muss Testautomatisierung für meinen localhost durchführen. Ich habe keine IP- oder Localhost-Adressen in das Recaptcha-Verwaltungsportal eingefügt.

Folgen Sie den unten stehenden Schritten 

  1. Loggen Sie sich ein, um die Recaptcha-Admin-Site zu besuchen Screenshot

  2. Suchen Sie die Schlüsseleinstellungen

  3. Klicken Sie auf Erweiterte Einstellungen

  4. Deaktivieren Sie unter Überprüfung des Domänennamens das Kontrollkästchen Herkunft von reCAPTCHA-Lösungen überprüfen. Diese Option wird verwendet, um zu überprüfen, ob Anforderungen von einer der oben aufgeführten Domänen stammen.

    Bitte beachten Sie, dass Sie, falls deaktiviert, den Hostnamen auf Ihrem Server überprüfen müssen, wenn Sie eine Lösung überprüfen.


Ich habe einen neuen Schlüssel erstellt und diesen deaktiviert und mit diesem Schlüssel in localhost getestet. 

Dies ist eine Beispielseite , die reCAPTCHA für Kommentare implementiert.

0
cyberviral

wenn Sie Domains in Google Recaptcha hinzufügen

Neue Domain hinzufügen: Localhost nicht localhost

"L" ist ein Großbuchstabe

Viel Glück

0
Yoni Ayalon

localhost funktioniert jetzt. Denken Sie jedoch daran, dass es nach dem Hinzufügen von localhost zu der Liste der Domänennamen bis zu 30 Minuten dauert, um wirksam zu werden (entsprechend dem in der Liste der Domänennamen angegebenen Hilfetipp).

0
Gautam Jain

Ja, dies ist eine ältere Frage, aber dies kann allen Benutzern helfen, die Probleme mit reCaptcha auf localhost haben. Google sagt in der Tat "Standardmäßig funktionieren alle Schlüssel für 'localhost' (oder '127.0.0.1')", aber bei Verwendung von reCaptcha für localhost können Probleme auftreten. In meinem Fall habe ich meine mit Secure Token gelöst.

Ich habe hier eine ARBEITSLÖSUNG für PHP gepostet

0
Hexodus