CSP瀏覽器安全策略備忘

 挺久以前過了一遍CSP的安全策略,不少人把它喻爲XSS***的終結者,由於這種策略再也不像傳統只靠各類正則和特徵匹配來識別跨站***Payload,而是直接從協議層把一些存在安全隱患的用法默認給幹掉了,把同源同域更發揮到了極致。以前把一些內容整理到了txt裏,發在這裏備忘一下吧:)chrome

 

1)CSP策略在默認的狀況下是不容許使用data URIs資源的,若是要使用,那麼須要顯示的指定,好比:img-src 'self' data:瀏覽器

2)經過CRLF相應頭分裂注入來BypassCSP須要將新的相應頭插入到原來的CSP下面,在處理相同名字的Http頭時候,少數瀏覽器是根據第一次出現的來設置,大部分則是根據最後一次出現的同名Http頭來設置。兩次安全

3)script-src:在處理腳本資源的時候設置"unsafe-inline"能夠阻止內聯Js代碼的執行。使用unsafe-eval開關能夠禁止eval,setTimeout,setInterval函數的執行。app

4)object-src:控制embed,code,archive applet等對象。框架

5)style-src:會控制樣式表@import和rel時所引入的URI資源,設置unsafe-inline規則能夠是瀏覽器拒絕解析內部樣式和內聯樣式定義。並不會阻止鏈入外部樣式表。ide

6)img-src:能夠控制圖片資源的鏈接,包括img標籤的src屬性,以及CSS3中的url()和p_w_picpath()方法,以及link標籤中的href屬性(當rel設置成與圖像相關的值,好比HTML支持的icon)函數

7)media-src:控制媒體類型的外部鏈入資源,如video, audio, source, 和track標籤的src屬性。url

8)frame-src:控制內嵌框架包含的外部頁面鏈接:iframe or a frame。spa

9)font-src:控制CSS中的@font-facecode

10)connect-src:控制XMLHttpRequest中的open(),WebSocket,EventSource

11)inline script和eval類型函數(包括eval、setInterval、setTimeout和new Function())是不被執行的。另外data URIs也是默認不容許使用的,XBL,只容許經過chrome:和resource:形式uri請求的XBL,其它的好比在CSS中經過-moz-binding來指定的XBL則不容許被執行。

相關文章
相關標籤/搜索