WebSurfer's Home

トップ > Blog 1   |   Login
Filter by APML

また reCaptcha が動かなくなりました

by WebSurfer 23. November 2013 15:13

ブログのスパムコメント防止のため、BlogEngine.NET には reCAPTCHA というツールが実装されていますが、今日、これが動かなくなっていることに気がつきました。

reCAPTCHA のスクリプトエラー

reCAPTCHA に関係するコードは一切いじってないのに、上の画像のように Recaptcha が定義されてないというスクリプトエラーが出ます。

この Recaptcha の定義は、Google のサーバーからダウンロードする recaptcha_ajax.js という外部スクリプトファイルに含まれています。

このスクリプトファイルの URL を直接ブラウザのアドレスバーに入力して要求をかけてみると HTTP 404(見つからない)エラーになります。

最初は Google が reCAPTCHA サービスをやめたのかと思いましたが、そうではなくてスクリプトファイルを提供するサーバーの URL が変わったのが原因でした。

変更前: http://api.recaptcha.net/js/recaptcha_ajax.js
変更後: http://www.google.com/recaptcha/api/js/recaptcha_ajax.js

ユーザー登録してあるのに Google から予告はなかったと思うのですが・・・ Google のサイトの Displaying reCAPTCHA Without Plugins を見ると確かに URL は変更後のものになってますが、後出しなんじゃないかと・・・

11 月の初旬にはこの問題が stachoverflow などに報告されていますので、自分は 2 週間ぐらい問題に気がつかなかったようです。(汗)

実は、ネットサーフィン時に不出来なサイト(?)で多発するスクリプトエラーがわずらわしいので IE のオプション設定で[スクリプトのデバッグを使用しない]にチェックを入れてました。そうすると上の画像のようなエラーメッセージは出ませんから。

原因が分かれば修正するのは簡単ですので早速対応しました。

この URL は以下のファイルの RecaptchaControl という名前の Web カスタムコントロールの中にハードコーディングされてます。

\App_Code\Extensions\Recaptcha\RecaptchaControl.cs

URL を web.config の AppSettings に設定するのがよさそうだとは一瞬思いましたが、面倒なのでハードコーディングした部分のみを修正して解決しました。(笑)

Tags:

BlogEngine.NET

About this blog

2010年5月にこのブログを立ち上げました。その後 ブログ2 を追加し、ここは ASP.NET 関係のトピックス、ブログ2はそれ以外のトピックスに分けました。

Calendar

<<  June 2021  >>
MoTuWeThFrSaSu
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

View posts in large calendar