1

Web ページに埋め込むことを目的とした JavaScript スニペットがあります。このスニペットは、フォームが埋め込まれているページにフォームをロードします。次に、スニペットはフォーム データを安全な URL に送信します。ここに問題があります。スニペットがフォームをロードするページは安全ではない可能性がありますが、フォーム データを安全な外部 URL に安全に転送する必要があります。可能であれば、これをどのように実装できますか?

4

3 に答える 3

4

フォームの ACTION 属性が HTTPS 宛先に送信する場合、フォーム HTML 自体が最初に送信された方法に関係なく、コンテンツは暗号化されて送信先に安全に送信されます。ユーザーがフォームを送信すると、ブラウザーは新しい接続を開始し、現在のブラウザーの場所ではなく、宛先に対する POST 要求 (フォームの METHOD は GET ではなく POST であると想定しています)。この場合、宛先が「https://...」であるため、その POST は HTTPS 経由で発生します。

これは、安全でないページに埋め込まれている可能性のある XSS やその他の固有のセキュリティ リスク、または JavaScript を介して HTTP 経由で送信されている間にフォーム HTML に対する MITM 攻撃については何も述べていません。あなたのプロジェクトにとって価値があります。おそらく、あなたの JavaScript は、FORM 自体の代わりに、(IFRAME の SRC に HTTPS を使用して) フォームを含む IFRAME を埋め込むことができます。これは、安全でないページで実行されている他のスクリプトがフォームとそのデータにアクセスするのを防ぐために、Facebook やその他の企業が行っていることです。ブラウザーは、同一生成元ポリシーに基づいて、他のスクリプトからのそのような試みをブロックします (すべての一般的な最新ブラウザーは信頼できます)。 IFRAME が要求すると、フォームは HTTPS 経由で送信されます。

于 2013-02-07T19:10:29.803 に答える
0

HTTPページにロードされたJavaScriptは、トラフィックを変更している攻撃者によって置き換えられます。変更されたJavaScriptは、データをどこかに公開するだけです。したがって、HTTPページからHTTPSページにデータを安全に転送することはできません。私が見逃している「安全」の他の定義がない限り?

于 2013-02-07T20:09:18.937 に答える
0

フォームを送信するときに重要なのはアクション URL であるため、フォームが URL を使用する場合、フォーム自体がまたはページhttps://でホストされているかどうかにかかわらず、その URL に対して POST 要求が行われます。http://https://

ただし、 を介してフォーム ページも提供する必要がありますhttps://WASP TLS チート シートの最初のルールを参照してください(この原則はログイン ページだけでなく、同様のフォームにも適用されます)。

https://問題は、ユーザーが確認できるアドレスを介してフォームのページを提供しないと、MITM 攻撃者がこのフォームを変更していないことをユーザーが信頼できないことです。たとえば、そのような攻撃者は、action属性を透過的に置き換えて別のサイトにリダイレクトしたり、フォームに入力されたすべてのキーを記録する JavaScript を挿入したりして、機密データを収集する可能性があります。

于 2013-02-07T19:38:13.193 に答える