使用SRI解決CDN劫持問題

2022-06-08 03:48:10 字數 866 閱讀 4698

這個時候你可以考慮下自己是否遭到了cdn劫持。

劫持方非常狡猾,每天每個使用者只劫持一次,或者只會在固定時間段劫持,非常難以重現。

這樣說明,使用cdn也存在風險,如果攻擊者獲得對 cdn 的控制權,則可以將任意惡意內容注入到 cdn 上的檔案中 (或完全替換掉檔案),因此可能潛在地攻擊所有從該 cdn 獲取檔案的站點。

用sri來解決這個問題

sri是什麼

面對如上的問題,需要引入乙個sri的api的概念。

sri是subresource integrity, 子資源完整性,是指瀏覽器通過驗證資源的完整性來判斷其是否被篡改的安全特性。它通過驗證獲取檔案的雜湊值是否和你提供的雜湊值一樣來判斷資源是否被篡改。

它的相容性在此,ie是全線沒指望了,所以ie使用者可能幫助不了了。但是我估計也沒人會去攻擊ie使用者了。

sri怎麼用

將使用base64編碼過後的檔案雜湊值寫入所引用的或標籤的integrity屬性。

integrity屬性分為兩個部分,第一部分是指定雜湊值的生成演算法(目前支援sha256,sha384和sha512),第二部分是經過編碼的實際雜湊值,兩者之前用乙個短橫(-)來分隔,例如:

至於如何生成sha256的hash編碼,如果你是使用webpack,有現成的外掛程式webpack-subresource-integrity,這裡有乙個簡單的使用demo。

如果不是使用webpack,就直接自己動手吧,基於crypto自己轉碼實現一下就好了。

檢測問題

瀏覽器如果發現檔案內容不一致,則會丟擲該script的onerror事件,並不會去載入這段指令碼的內容。

使用OpenDNS解決DNS網域名稱劫持

使用方法非常簡單,對於寬頻撥號使用者來說,在 設定 網路連線 中找到寬頻上網的連線,開啟網路連線屬性,選擇interner協議 tcp ip 的屬性頁裡,不要選擇自動獲取dns,而要選擇 使用下面的dns伺服器位址 首選dns伺服器和備用dns伺服器分別設定為208.67.222.222和208.6...

直播CDN原理 解決延時 連麥問題

正如上圖所示,整個直播流程分為以下幾個關鍵步驟 那麼接下來了解一下cdn的技術原理。cdn的全稱為content delivery network,即內容分發網路,是乙個策略性部署的整體系統,主要用來解決由於網路頻寬小 使用者訪問量大 網點分布不均勻等導致使用者訪問 速度慢的問題。cdn的技術原理見...

CDN中,字型檔案的跨域問題和解決

font face是css3中的乙個特性,可以把自己定義的web字型嵌入到網頁中,隨著 font face,越來越多的網頁採用字型圖示作為網頁中的小圖形。比如bootstrap就採用了glyphicons 字型圖示 在bootstrap的架構下可以免費使用glyphicons的250多種圖示字型。另...