web-dev-qa-db-ja.com

HTTPおよびHTTPS iframe

私は小さなウィジェットを作成していますが、他の人が使用できるようにしたいと思っています。 iframeはHTTP経由でロードされますが、ユーザーがHTTPS経由でログインできるようにします。つまり、SSL経由でログインのリクエストを送信します。

これは同一起源ポリシー内で許可されていますか?つまり、シナリオは、ユーザーが自分のJavaScriptを自分のWebサイトに統合し、ウィジェットが開き、HTTPS経由でログインできるようにすることです。

44
Tom

一般的に、プレーンHTTP(または混合コンテンツ)で提供されるページ内にHTTPSで提供されるコンテンツを含むiframeを埋め込むことは悪い習慣です。これは、ユーザーが意図したHTTPSサイトを使用していることを確認する良い方法がないためです(ユーザーが本当にページのソースを確認したい場合を除く)。

攻撃者は、あなたが提供するコンテンツを次のように非常にうまく置き換えることができます。

<iframe src="https://your.legitimate.example/loginframe" />

で:

<iframe src="https://rogue.site.example/badloginframe" />

あるいは:

<iframe src="http://rogue.site.example/badloginframe" />

これは、ユーザーにとって検出するのが非常に難しく、HTTPS経由のログインを有効にすることで、導入しようとしているセキュリティ対策を無効にします。

51
Bruno

@Bruno-同意しますが、多くの場合元々提供されたソーステキスト。私が真剣に誤解しない限り、ページ内またはページ外のJavaScriptコードで簡単に変更できます(誰かが本当に見つけられないようにしたい場合は、それ自体が難読化される可能性があります)。つまり、[〜#〜] if [〜#〜]ユーザーには適切なブラウザがあります、私は思う彼らはかもしれないできる- 最初に疑わしい場合-iframeのソースを確認してそのコードのソースを判別し、ソースを信頼しているかどうかを判別します...実際には妥当な期待ではありません。

これはすべて、適切なデバッガーやソフトウェア/ DOMインスペクターとデジタルエルボーグリースを使用して決定できますが、OPは誰もがこれを行うことを合理的に期待することはできません(anyoneの場合)

6
Code Jockey

私はいくつかのテストを行いました。 httpsからhttpsを使用して別のドメインにリンクする場合、有効なSSL証明書が必要です。

4
user2323922