XSS 再談CSP內容安全策略

2022-09-09 23:27:33 字數 1656 閱讀 5606

之前每次都是想的很淺,或者只是個理論派,事實證明就是得動手實踐

參考

官方文件

通過設定屬性來告訴瀏覽器允許載入的資源資料**。可通過response響應頭來設定,也可以直接通過meta標籤來設定

content-security-policy: default-src 'self'; script-src 'self' allowed.com; img-src 'self' allowed.com; style-src 'self';
通過上述兩種方式來設定csp。

還可以設定cspro,它不執行限制選項,只會進行記錄違反行為

content-security-policy-report-only: default-src 'self'; ...; report-uri /my_amazing_csp_report_parser;

csp指令分為指令和指令值,指令用來指明作用區域,指令值則是用於標明該區域的js策略

script-src:外部指令碼

style-src:樣式表

img-src:影象

font-src:字型檔案

object-src:外掛程式(比如 flash)

child-src:框架

connect-src:http 連線(通過 xhr、websockets、eventsource等)

worker-src:worker指令碼

manifest-src:manifest 檔案

dedault-src:預設配置

frame-ancestors:限制嵌入框架的網頁

base-uri:限制form-action:限制block-all-mixed-content:https 網頁不得載入 http 資源(瀏覽器已經預設開啟)

plugin-types:限制可以使用的外掛程式格式

sandbox:瀏覽器行為的限制,比如不能有彈出視窗等。

**        *:星號表示允許任何url資源,沒有限制;

self:表示僅允許來自同源(相同協議、相同網域名稱、相同埠)的資源被頁面載入;

none:不允許任何資源被載入;

unsafe-inline:允許使用內聯資源,例如內聯標籤,內聯事件處理器,內聯標籤等,但出於安全考慮,不建議使用;

nonce:通過使用一次性加密字元來定義可以執行的內聯js指令碼,服務端生成一次性加密字元並且只能使用一次;**

用例分析

content-security-policy: default-src 'self'; script-src 'self' allowed.com; img-src 'self' allowed.com; style-src 'self';
上述的csp策略就是說該介面預設只允許載入本身的資源,後面的img-src等會對前面的預設設定許可權進行覆蓋。

我們先來了解乙個小知識(敲黑板):當瀏覽器碰到乙個左尖括號時,會變成標籤開始狀態,然後會一直持續到碰到右尖括號為止,在其中的資料都會被當成標籤名或者屬性

CSP 內容安全策略

服務端可通過設定響應頭csp來實現 1.限制資源獲取 2.報告資源獲取越權 資源1 空格 關鍵字1 資源2 關鍵字2 如 content security policy script src self form action self report uri report ps 表轉義,避免node....

內容安全策略 CSP

內容安全策略 csp 是乙個額外的安全層,用於檢測並削弱某些特定型別的攻擊,包括跨站指令碼 xss 和資料注入攻擊等。摘自mdn 具體內容請參考mdn 對於react和vue,xss攻擊已經在框架裡進行了防範,但是使用 dangerouslysetinnerhtml react 和 v html v...

CSP內容安全策略

csp介紹 使用方法 維基百科 csp 的主要目標是減少和報告 xss 攻擊 xss 攻擊利用了瀏覽器對於從伺服器所獲取的內容的信任。惡意指令碼在受害者的瀏覽器中得以執行,因為瀏覽器信任其內容 即使有的時候這些指令碼並非來自於它本該來的地方。csp通過指定有效域 即瀏覽器認可的可執行指令碼的有效 使...