摘要:因為頁面通過加載的初始請求是安全的,但是又加載了不安全的內(nèi)容,因此稱之為混合內(nèi)容。但是即使顯示警告,頁面也已經(jīng)加載,用戶的安全仍然受到了威脅。這就是頁面為什么發(fā)送不了的原因。
我們都知道HTTPS的頁面是發(fā)送不了HTTP請求的,那么是什么原因?qū)е翲TTPS頁面不能發(fā)送HTTP請求呢?如果有發(fā)送的需求,怎么樣才能發(fā)送?最近剛好遇到了這個問題,而且搜了半天沒搜到靠譜的答案,所以有了本文。1. 故事起源
我在《Jquery ajax, Axios, Fetch區(qū)別之我見》中提到過,F(xiàn)etch作為一種不同于XHR的請求方式,展示了它更多API,以及符合ES規(guī)范的良好前景;更不用說它可以支持POST跨域。剛好工作上有用post方法上報效果數(shù)據(jù)的請求,我小手一揮,不用后臺兄弟們麻煩了,我可以搞定,把效果上報換成了Fetch,美滋滋。
過了一段時間,后臺跑過來說,現(xiàn)在還有些其他HTTP站點的數(shù)據(jù)上報。我試了一下,移動端根本就沒有發(fā)出這個請求,這……
2. 為什么HTTPS頁面發(fā)送不了HTTP請求有些人說是跨域問題,真的是這樣嗎?
同源策略:1. 協(xié)議相同 2. 域名相同 3.端口相同
盡管HTTPS訪問HTTP確實不符合同源策略中的協(xié)議相同,但是在現(xiàn)代瀏覽器里,即使是域名相同的請求,也是會出現(xiàn)以下報錯,而不是跨域報錯。
這也很好理解,畢竟混合內(nèi)容的安全策略是在瀏覽器端判定的,而是否能跨域要看服務(wù)器返回的Response頭,請求都被瀏覽器block掉了,也就不存在是否跨域的問題。
那什么是混合內(nèi)容?
混合內(nèi)容:初始 HTML 內(nèi)容通過安全的 HTTPS 連接加載,但其他資源(例如,圖像、視頻、樣式表、腳本)則通過不安全的 HTTP 連接加載[1]。因為頁面通過 HTTPS 加載的初始請求是安全的,但是又加載了不安全的HTTP內(nèi)容,因此稱之為混合內(nèi)容。
因為HTTPS的S本身就是Secure的意思,現(xiàn)代瀏覽器最初會針對此類型的內(nèi)容顯示警告,以向用戶表明此頁面包含不安全的資源。但是即使顯示警告,頁面也已經(jīng)加載,用戶的安全仍然受到了威脅。所以沒過多久,Chrome和Firefox就直接阻斷掉了這類的請求。
這就是HTTPS頁面為什么發(fā)送不了HTTP的原因。
2. 突破方式盡管現(xiàn)在主流瀏覽器都已經(jīng)block掉了HTTPS頁面上的HTTP請求,但是我們還是可以通過被動混合內(nèi)容來發(fā)送get請求。
被動混合內(nèi)容:指的是不與頁面其余部分進行交互的內(nèi)容,包括圖像、視頻和音頻內(nèi)容 ,以及無法與頁面其余部分進行交互的其他資源。主動混合內(nèi)容: 指的是能與頁面交互的內(nèi)容,包括瀏覽器可下載和執(zhí)行的腳本、樣式表、iframe、flash 資源及其他代碼。[1]
因為攻擊者可以通過不安全的HTTP內(nèi)容來攻擊安全的HTTPS頁面,所以這類請求被嚴格阻斷掉了————這也是為什么我們的Fetch請求被干掉了。所以我們可以在迫不得已的情況下,用img.src的方式來發(fā)送請求。當然,請求方法只能是get。
sendHttpRequest: () => { const img = new Image(); img.src = "http://xxx.com//你的請求" }
這時候,瀏覽器只會在控制臺報warning,而不會block我們的請求。
總結(jié)出于HTTPS的安全策略,瀏覽器會阻斷HTTPS上的非安全請求(HTTP)請求,但是我們可以使用被動混合內(nèi)容的方式來跨越這個安全策略。
參考文章:《什么是混合內(nèi)容》
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/95334.html
摘要:明文協(xié)議的缺陷是導致數(shù)據(jù)泄露數(shù)據(jù)篡改流量劫持釣魚攻擊等安全問題的重要原因。不驗證通信方的身份,因此有可能遭遇偽裝協(xié)議中的請求和響應(yīng)不會對通信方進行確認。數(shù)字簽名能確定消息的完整性證明數(shù)據(jù)是否未被篡改過。 近幾年,互聯(lián)網(wǎng)發(fā)生著翻天覆地的變化,尤其是我們一直習以為常的HTTP協(xié)議,在逐漸的被HTTPS協(xié)議所取代,在瀏覽器、搜索引擎、CA機構(gòu)、大型互聯(lián)網(wǎng)企業(yè)的共同促進下,互聯(lián)網(wǎng)迎來了HTTP...
摘要:明文協(xié)議的缺陷是導致數(shù)據(jù)泄露數(shù)據(jù)篡改流量劫持釣魚攻擊等安全問題的重要原因。也就是說加上加密處理和認證以及完整性保護后即是。數(shù)字簽名能確定消息的完整性證明數(shù)據(jù)是否未被篡改過。 前言 近幾年,互聯(lián)網(wǎng)發(fā)生著翻天覆地的變化,尤其是我們一直習以為常的HTTP協(xié)議,在逐漸的被HTTPS協(xié)議所取代,在瀏覽器、搜索引擎、CA機構(gòu)、大型互聯(lián)網(wǎng)企業(yè)的共同促進下,互聯(lián)網(wǎng)迎來了HTTPS加密時代,HTTPS將...
摘要:明文協(xié)議的缺陷是導致數(shù)據(jù)泄露數(shù)據(jù)篡改流量劫持釣魚攻擊等安全問題的重要原因。也就是說加上加密處理和認證以及完整性保護后即是。數(shù)字簽名能確定消息的完整性證明數(shù)據(jù)是否未被篡改過。 前言 近幾年,互聯(lián)網(wǎng)發(fā)生著翻天覆地的變化,尤其是我們一直習以為常的HTTP協(xié)議,在逐漸的被HTTPS協(xié)議所取代,在瀏覽器、搜索引擎、CA機構(gòu)、大型互聯(lián)網(wǎng)企業(yè)的共同促進下,互聯(lián)網(wǎng)迎來了HTTPS加密時代,HTTPS將...
閱讀 3623·2021-11-24 10:25
閱讀 2549·2021-11-24 09:38
閱讀 1238·2021-09-08 10:41
閱讀 2921·2021-09-01 10:42
閱讀 2603·2021-07-25 21:37
閱讀 1997·2019-08-30 15:56
閱讀 928·2019-08-30 15:55
閱讀 2765·2019-08-30 15:54