https 是 http over secure socket layer,以安全為目标的 http 通道,是以在 https 承載的頁面上不允許出現 http 請求,一旦出現就是提示或報錯:
mixed content: the page at ‘https://www.taobao.com/‘ was loaded over https, but requested an insecure image ‘http://g.alicdn.com/s.gif’. this content should also be served over https.
https改造之後,我們可以在很多頁面中看到如下警報:
很多營運對 https 沒有技術概念,在填入的資料中不免出現 http 的資源,體系龐大,出現疏忽和漏洞也是不可避免的。
<a target="_blank"></a>
在我們伺服器的響應頭中加入:
<code>header("content-security-policy: upgrade-insecure-requests");</code>
不過讓人不解的是,這個資源發出了兩次請求,猜測是浏覽器實作的 bug:
當然,如果我們不友善在伺服器/nginx 上操作,也可以在頁面中加入 <code>meta</code> 頭:
<code><meta http-equiv="content-security-policy" content="upgrade-insecure-requests" /></code>
目前支援這個設定的還隻有 chrome 43.0,不過我相信,csp 将成為未來 web 前端安全大力關注和使用的内容。而 <code>upgrade-insecure-requests</code> 草案也會很快進入 rfc 模式。
本文來自雲栖社群合作夥伴“linux中國”,原文釋出日期:2015-09-07