2010-06-29 182 views
42

我正在創建一個小部件,我想讓其他人使用它。 iframe通過HTTP加載 - 但我想允許用戶通過HTTPS登錄。即通過SSL發送登錄請求。HTTP和HTTPS iframe

這是否允許在同源策略中使用?即情景是,用戶可以將我的JavaScript集成到他們的網站,窗口小部件打開,我想讓他們通過HTTPS登錄?

+0

我回答了幾個獨特的方法來做到這一點:http://stackoverflow.com/questions/18327314/how-to-allow-http-content-within-an-iframe-on-a-https-site/25189561#25189561 – 2016-08-01 12:37:24

回答

50

在通過普通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登錄來擊敗您要設置的安全措施。

5

@布魯諾 - 我同意,但我想指出,即使檢查頁面的來源 - 要求如此 - 頁面可能不足以確保安全性或適當/預期的目的地,因爲這通常是最初爲提供源文本。除非我嚴重錯誤,否則可以通過頁內或頁外JavaScript代碼輕鬆更改(如果有人真的想讓它不可能找到,它本身可能會被混淆)。這就是說,IF用戶擁有一個合適的瀏覽器,我認爲他們可能能 - 如果他們懷疑與開始 - 檢查iframe的來源,以確定代碼的來源,然後確定他們是否相信來源...不是一個合理的期望。

雖然這一切可以用適當的調試器和/或軟件/ DOM督察和數字苦勞的好幫扶確定的,OP不能合理地期望每個人都這樣做(如果在所有)

+3

99.9%的互聯網用戶不知道或不屑檢查頁面源碼。我明白你如何說服我的父親檢查源代碼,更不用說使用調試器了。 – Krumia 2014-09-22 04:39:57

3

我已經做了一些測試。如果您使用https將https頁面鏈接到另一個域名,則需要有效的SSL證書。