我有一個旨在嵌入到任何網頁的JavaScript代碼片段。這段代碼將一個表單加載到它所嵌入的頁面中。代碼段然後將表單數據發送到一個安全的URL。問題在於,代碼片段加載表單的頁面可能不安全,但我需要將表單數據安全地傳輸到安全的外部URL。如果可能,我該如何實現?如何將內容從非安全網頁安全發送到安全網址?
回答
如果表單的ACTION屬性將其指向HTTPS目標,則內容將被加密並安全地傳輸到目標,而不管HTML最初傳輸的格式如何:當用戶提交表單時,瀏覽器啓動新的連接,並針對目的地發出POST請求(我假設你的表單的METHOD是POST,而不是GET),而不是當前的瀏覽器位置。在這種情況下,該POST通過HTTPS發生,因爲目標是「https:// ...」。
這並沒有說明XSS的內在安全風險,也沒有可能嵌入到不安全頁面的內容,或者是在通過JavaScript通過HTTP傳輸時對HTML格式的MITM攻擊......您必須決定這些考慮是否值得您的項目。也許你的JavaScript可以嵌入帶有表單的IFRAME(對IFRAME的SRC使用HTTPS)而不是FORM本身;這是Facebook和其他人爲防止其他腳本在不安全頁面上運行而訪問表單及其數據 - 瀏覽器將根據其同源策略阻止其他腳本的這種嘗試(每個流行的現代瀏覽器都可以依靠做到這一點),並在IFRAME請求時通過HTTPS傳輸表單。當內容需要安全並且無法控制表單嵌入的位置時,這是將表單傳送到任意網站的首選方式。
即使是一個iframe,如果外部頁面覆蓋純HTTP,也會出現[類似風險](http://stackoverflow.com/a/3183176/372643)。 – Bruno
如果您的JS和表單僅通過HTTPS傳輸(並且拒絕訪問HTTP請求),那麼您已盡全力。如果一個MITM通過HTTP截獲了外部頁面,並且重寫了你的JS嵌入來放置一個HTTP IFRAME,它將不會加載你的表單。他們真正能做的就是攔截你的JS,殺死它,並從頭開始注入自己的表單。在這一點上你無能爲力 - 即使你通常沒有以任何方式提供表格,他們也可以重寫頁面並創建一個令人信服的翻版,然後插入它。如果URL錯誤或鎖定圖標丟失,則無論如何每個人都會點擊。 –
事實上,如果外部頁面是普通的HTTP,你不能保證任何東西。 – Bruno
這是當您提交的形式,重要的操作URL,因此,如果您的形式使用的https://
URL,它會使POST請求到該網址的形式本身是否是http://
或https://
網頁上。
但是,您還應通過https://
提供表單頁面。請參閱first rule of the WASP TLS cheat sheet(此原則不僅適用於登錄頁面,而且適用於任何類似的表單)。
問題是,如果用戶沒有通過地址https://
提供表單的頁面,而用戶可以看到驗證,那麼用戶不能相信MITM攻擊者沒有更改此表單。例如,這樣的攻擊者可以透明地替換action
屬性以重定向到另一個站點,或者注入一些JavaScript來記錄輸入該表單的所有密鑰,這些密鑰應該用於收集敏感數據。
在HTTP頁面上加載的JavaScript將被正在修改您的流量的攻擊者所取代。修改後的JavaScript可以簡單地將數據發佈到公衆處。因此,無法將數據從HTTP頁面安全地傳輸到HTTPS頁面。除非你有我缺少的「安全」的其他定義?
- 1. 從非安全的網頁
- 2. 安全網頁
- 3. 安全的回形針網址只適用於安全網頁
- 4. 如何從安全網頁跟蹤不安全的http請求
- 5. 春季安全 - 發佈到不安全的網頁導致403
- 6. 從網頁讀取圖像數據到Firefox安全不安全?
- 7. 在安全的網頁上顯示非安全項目
- 8. 將不安全網站重定向到安全網站
- 9. 混合安全和非安全頁面
- 10. 網址安全行動
- 11. PHP的安全與網址?
- 12. 安全網址/應用
- 13. 安全網址的textarea
- 14. Instagram的profile_picture安全網址
- 15. 更安全的S3網址
- 16. 安全的網址參數
- 17. Base64網址安全嗎?
- 18. 網址安全問題
- 19. 安全網址給用戶
- 20. 網站安全
- 21. 網絡安全
- 22. 網絡安全
- 23. 網站安全
- 24. 網店安全
- 25. 安全網站
- 26. 網站安全
- 27. 查找在安全頁面觸發IE6「非安全項目通知」上發送的非安全http請求
- 28. 內容安全策略春季安全
- 29. 重定向非安全WWW網址,以確保非WWW網址
- 30. 網頁安全 - 從HTTP轉移到HTTPS?
安全是指你的意思是HTTPS? – Birla
是的,這就是我的意思。 – Babiker