2

このリンクに照らしてみると、recaptcha オブジェクトをページに挿入するために使用されるようなインライン スクリプトのように見えます。

<script type="text/javascript"
     src="http://www.google.com/recaptcha/api/challenge?k=your_public_key">
</script>
<noscript>
<iframe src="http://www.google.com/recaptcha/api/noscript?k=your_public_key"
     height="300" width="500" frameborder="0"></iframe><br>
<textarea name="recaptcha_challenge_field" rows="3" cols="40">
</textarea>
<input type="hidden" name="recaptcha_response_field"
     value="manual_challenge">
</noscript>

または経由

 <script type="text/javascript" src="http://www.google.com/recaptcha/api/js/recaptcha_ajax.js"></script>

Recaptcha.create("your_public_key",
"element_id",
{
  theme: "red",
  callback: Recaptcha.focus_response_field
}

);

manifest.json がhttp://www.google.com/recaptcha/api/js/recaptcha_ajax.jsのような URL を許可しているように見えるにもかかわらず、コンテンツのセキュリティ ポリシーについて常に苦情が寄せられます。

この質問全体を狂わせる本当に明白な何かが欠けていますか?

4

3 に答える 3

4

私はこれで2時間格闘しました。私にとって、そしてこの例についても同様だと思いますが、問題はsrc属性にあります。つまり、http:. 参照を次のように変更します。

<script type="text/javascript" 
     src="https://www.google.com/recaptcha/api/challenge?k=your_public_key">
              ^  v
<iframe src="https://www.google.com/recaptcha/api/noscript?k=
     height="300" width="500" frameborder="0"></iframe>

問題を修正しました。基本的に、安全でない接続で Google API にアクセスしようとしており、特定のブラウザ (Chrome など) はデフォルトで安全でないコンテンツをレンダリングしません。

于 2012-10-30T16:51:54.287 に答える
1

Chrome 拡張機能では、非セキュアhttpは CSP 経由でホワイトリストに登録できません。
ドキュメントには次のように記載されています。

デフォルト ポリシーの緩和

(...) 一方、外部の JavaScript またはオブジェクト リソースが必要な場合は、スクリプトを受け入れる特定の HTTPS オリジンをホワイトリストに登録することで、ポリシーを限定的に緩和できます。安全でない HTTP リソースをホワイトリストに登録しても効果はありません。 これは意図的なものです。これは、拡張機能の昇格されたアクセス許可で読み込まれた実行可能リソースが、期待どおりのリソースであり、アクティブなネットワーク攻撃者によって置き換えられていないことを確認するためです。中間者攻撃は、HTTP では取るに足らないものであり、検出できないため、HTTPS オリジンのみが受け入れられます。

于 2012-05-10T19:49:07.737 に答える