web-dev-qa-db-ja.com

localhostでreCAPTCHAを使用する

私はPHPを使用してWebサイトを開発していますが、いずれかのセッションで人間による検証を行いたいです。開発のために、私は最初にシステムをローカルで実行しています、そしてそれが準備ができているとき、私は特定のドメインにそれを置くつもりです。

reCAPTCHA Webサイト では、プラグインは指定されたドメイン(およびサブドメイン)でのみ機能すると言われています。

私の質問は、ローカルホストでreCAPTCHAプラグインを使用する方法はありますか?

236
rlc

更新

元の答えはもう正しくありません。開発者ガイドには、次のように記載されています。

「開発に「localhost」を使用したい場合は、ドメインのリストに追加する必要があります。」

これは、127.0.0.1/...ではなくlocalhost/...を使用してlocalhostにアクセスする場合にのみ機能します。

元の答えは以下に保存されています。


reCAPTCHA開発者ガイド によると、

msgstr "" "localhostドメインはデフォルトではサポートされなくなりました。開発のためにそれらを引き続きサポートしたい場合はそれらをあなたのサイトキーのサポートドメインのリストに追加してください。開発用と本番用に別のキーを使用し、本番サイトのキーでlocalhostを許可しないようにしてください。」

つまり、同じキーを使うだけです。

299
Nathan Osman

2016年現在、 ReCaptchaはもはや単純にlocalhostをサポートしていません 。 FAQから:

localhostドメインはデフォルトではサポートされなくなりました。あなたが開発のためにそれらをサポートし続けたいのなら、あなたはあなたのサイトキーのためにサポートされるドメインのリストにそれらを追加することができます。管理コンソールに移動して、サポートされているドメインのリストを更新してください。開発用と本番用に別のキーを使用し、本番サイトのキーにlocalhostを許可しないことをお勧めします。

あなたのサイトのドメインのリストにlocalhostを追加するだけでいいのです。

94
CC Inc

それはとても簡単です:

  1. あなたの グーグルreCaptcha管理者パネル に行ってください。
  2. 次の図のように、新しいサイトのドメインにlocalhost127.0.0.1を追加します。

enter image description here


更新:

あなたの質問がlocalhostでそれを使用するためにGoogleのサイトでreCaptchaを設定する方法であるならば、私はそれを上に書いたがあなたがreCAPTCHA onbothlocalhostwebsite Host byコントローラ内の最小コードを避け、ConfigurationManager.AppSettings["ReCaptcha:SiteKey"]のようないくつかのコードを避けることで、この追加の説明と答えのコードを手助けします。

次のようなGETやPOSTアクションが好きですか?

それ ???? reCaptchaをサポートし、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
}

表示:参照

@ReCaptcha.GetHtml(@ViewBag.publicKey)

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

使うには

A)次のActionFilterをWebプロジェクトに追加してください。

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)両方のreCaptchalocalhostwebsite設定キーを、webconfigファイルに追加します。

<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>

注:この方法では、postアクションまたはanyにreCaptcha_SecretKeyパラメータを設定する必要はありませんでした。アクションとビューでreCaptchaを手動で変更する場合はViewBag、これらはすべてローカルホストまたはWebサイトでプロジェクトを実行したかどうかに応じて、実行時に適切な値で自動的に入力されます。

47
RAM

これは私のために働いた:

「次のテストキーを使用すると、常に「CAPTCHAなし」と表示され、すべての確認要求に合格します。

サイトキー:6LeIxAcTAAAAAJcZVRqyHh71UMIEGNQ_MXjiZKhI

秘密鍵:6LeIxAcTAAAAAGG-vFI1TnRWxMZNFuojJ4WifJWe

ReCAPTCHAウィジェットは、それがテスト目的のためだけであると主張するために警告メッセージを表示します。本番用のトラフィックにこれらのキーを使用しないでください。」

ここから抜粋: https://developers.google.com/recaptcha/docs/faq

BR!

41
Pablo

Googleは最近localhostがデフォルトで許可されることを許可することを止めて変更しました。 (@Artur Cesar De Meloが感心したとおり)これは彼らのFAQの下にあります:

「Localhostはサポートされているドメインのリストにありません」というエラーが表示されます。これは以前はうまくいっていましたが、どうすればいいですか?

localhostドメインはデフォルトではサポートされなくなりました。あなたが開発のためにそれらをサポートし続けたいのなら、あなたはあなたのサイトキーのためにサポートされるドメインのリストにそれらを追加することができます。管理コンソールに移動して、サポートされているドメインのリストを更新してください。開発用と本番用に別のキーを使用し、本番サイトのキーにlocalhostを許可しないことをお勧めします。

1:開発環境用に別のキーを作成する

2:許可ドメインのリストに127.0.0.1を追加

3:変更を保存し、変更が有効になるまで最大30分かかります

8
tony09uk

によると Google recaptcha documentation

localhostドメインはデフォルトではサポートされなくなりました。あなたが開発のためにそれらをサポートし続けたいのなら、あなたはあなたのサイトキーのためにサポートされるドメインのリストにそれらを追加することができます。管理コンソールに移動して、サポートされているドメインのリストを更新してください。開発と本番用に別のキーを使用し、本番サイトのキーにlocalhostを許可しないことをお勧めします。

4

現在のREcaptchaキーを削除してから、新しいキーを登録し、キー設定をドメインに設定します。127.0.0.1 localhost

4
Mykhailo

Recaptchaはlocalhost/では動作しません

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

古いキーがある場合は、APIキーを再作成する必要があります。プロキシにも注意してください。

1

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

あなたがチェックを無効にすることができると言う部分をチェックしてください。開発のためだけにそれをしてください。

1
Siddharth Tyagi

"localhost"または "127.0.0.1"と書くことができますがURLは同じでなければなりません

例:Googleドメイン追加 - > localhost URL => localhost/login.php

例:Googleドメインの追加 - > 127.0.0.1 URL => 127.0.0.1/login.php

1
Merty
  1. でウェブサイトを登録します– https://www.google.com/recaptcha/admin
  2. jsプラグインを追加3.クラスを追加し、Googleが提供するサイトキー 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

私は最近recaptcha v2を含むWebサイトを作成しようとしていました、そして私は私のローカルホスト上でテスト自動化をする必要があります。私はrecaptcha管理ポータルにipやlocalhostを追加しませんでした。

以下の手順に従ってください

  1. Recaptcha管理サイトにログインします screenshot

  2. キー設定を見つける

  3. 詳細設定をクリック

  4. ドメイン名検証の下で、チェックを外しますreCAPTCHAソリューションの起源の確認チェックボックスこのオプションは、上記のドメインのいずれかからリクエストが来たことを確認するために使用されます。

    注意してください、無効になっている場合は、解決策を検証するときにサーバー上のホスト名を確認する必要があります。


新しいキーを作成してこれを無効にし、このキーをlocalhostでのテストに使用します。

これは サンプルページ で、コメントのためにreCAPTCHAを実装しています。

0
cyberviral

google recaptchaでドメインを追加するとき

新しいドメインを追加:ローカルホストではなくローカルホスト

「L」は大文字

がんばろう

0
Yoni Ayalon

localhostは今動作します。ただし、ドメイン名のリストにlocalhostを追加してから有効になるまでに最大30分かかることを覚えておいてください(ドメイン名リストに対して表示されるヘルプのヒントによると)。

0
Gautam Jain

はい、これは古い質問ですが、これはlocalhost上のreCaptchaに関する問題を抱えているすべてのユーザーを助けているかもしれません。 Googleは確かに「デフォルトでは、すべてのキーが 'localhost'(または '127.0.0.1')で動作する」と言っていますが、実際にはlocalhostでreCaptchaを使用すると問題が生じる可能性があります。私の場合は、 secure token を使って私の解決しました

私はPHPのワーキングソリューションをここに投稿しました

0
Hexodus