CSP 內容安全策略( content security policy )

1 背景

跨域腳本攻擊,網絡安全漏洞,因而就有了內容安全防禦策略,從根本上解決這個問題。php

2 啓用CSP的方式有2css

    修改meta標籤,http-equivehtml

    服務器 響應頭設置api

3 主要的CSP策略有5跨域

設置 CSP 的示範代碼:瀏覽器

通常狀況會這樣設置: Content-Security-Policy:  block-all-mixed-content安全

res.writeHead(200, {
     'Content-Type': 'text-html',
     'Content-Security-Policy': 'default-src http: https:' 
});

 

不一樣csp限制類型的使用說明服務器

a,不容許使用內聯腳本或樣式,限制引入文件的方式網絡

'Content-Security-Policy': 'default-src http: https:'ui

 

b,容許加載指定域名下的文件資源

'Content-Security-Policy': 'default-src \'self\''

'Content-Security-Policy': 'default-src \'self\' https://cdn.bootcss.com/'

 

c,防止表單提交時訪問站點

<form action="https://baidu.com">  會跳轉到百度頁面
    <button>click me</button>
</form>

'Content-Security-Policy': 'default-src \'self\' https://cdn.bootcss.com/; form-action \'self\''

 

d,default-src 設置的是全局,若是隻想限制js類型的請求,能夠這樣寫

'Content-Security-Policy': 'script-src http: https'

 

e,設置響應報告,瀏覽器會給服務器主動發送 report api 的請求,返回具體的違反CSP的信息,在執行限制策略的同時發送報告

'Content-Security-Policy': 'default-src \'self\' https://cdn.bootcss.com/; form-action \'self\; report-uri /report''

 

d,只發送報告,不執行限制的策略

'Content-Security-Policy-Report-Only' 只會發送報告,不會執行策略

 

f,在 meta 標籤上設置 csp

<meta http-equiv="Content-Security-Policy" content="form-action 'self';">

和服務器上請求頭上設置是同樣的效果,可是不能發送違反策略的信息報告。

CSP詳細策略可參考HTML5開發規範 
相關文章
相關標籤/搜索