什么是CSP CSP全稱Content Security Policy ,可以直接翻譯為內容安全策略,說白了,就是為了頁面內容安全而制定的一系列防護策略. 通過CSP所約束的的規責指定可信的內容來源(這里的內容可以指腳本、圖片、iframe、fton、style等等可能的遠程的資源),通過CSP協定,讓WEB處于一個安全的運行環境中, 有什么用? 我們知道前端有個很著名的”同源策略”,簡而言之,就是說一個頁面的資源只能從與之同源的服務器獲取,而不允許跨域獲取.這樣可以避免頁面被注入惡意代碼,影響安全.但是這個策略是個雙刃劍,擋住惡意代碼的同時也限制了前端的靈活性,那有沒有一種方法既可以讓我們可以跨域獲取資源,又能防止惡意代碼呢? 答案是當然有了,這就是csp,通過csp我們可以制定一系列的策略,從而只允許我們頁面向我們允許的域名發起跨域請求,而不符合我們策略的惡意攻擊則被擋在門外,
指令設定詳情見上傳comments附件, 參考檔案: https://blog.csdn.net/JoeBlackzqq/article/details/89017945?ops_request_misc=&request_id=&biz_id=102&utm_term=content-security-policy.com&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-0-89017945.142^v19^rank_v32,157^v15^new_3&spm=1018.2226.3001.4187
CSP配置方式:
1.通過回應包頭(Response Header)實作: Content-Security-policy: default-src 'self'; script-src 'self' allowed.com; img-src 'self' allowed.com; style-src 'self';
2.通過HTML 元標簽實作: <meta http-equiv="Content-Security-Policy" content="default-src 'self'; img-src https://*; child-src 'none';">
CSP常見指令:
script-src:這個指令規定了網站中可執行腳本的來源,同時也控制了 XSLT 的來源;
style-src:定義了樣式檔案的來源;
media-src:規定了富媒體(音視頻、視頻文本軌格式)資源的來源;
child-src:規定了像 worker 、frame 這種嵌入可使用的鏈接;
font-src:規定了字體的來源,如果在網頁中使用了第三方字體可以使用這個指令;
img-src:規定了網站中的圖片的來源;
form-action:規定了網頁中的 form 元素 action 的可提交地址;
connect-src:規定了腳本中發起連接的地址,像 XMLHttpRequest 的 send 方法、WebSocket 連接地址、EventSource 等;
frame-src:這個指令規定了 frame 的可使用鏈接,
在 CSP level 2 中廢棄了,檔案中叫我們用 child-src 來代替這個指令,但在 level 3 中恢復使用; object-src:規定了一些插件的來源,像 Flash 等; report-uri:這個指令是指定一個 CSP 上報地址,當瀏覽器檢測到有不通過指令時,將通過這個指定地址進行上報,值得注意的是,這個指令不能在 meta 元素中使用,并且在 CSP level3 中這個指令會被廢棄,用 report-to 來代替,為了保證這個指令有效,官方推薦 report-uri & report-to 同時使用; worker-src:這個指令是 CSP level3 中加的,規定了 Worker、SharedWorker、serviceWorker 中可用的地址; base-uri:規定了頁面 base 標簽中的鏈接; frame-ancestors:規定了當前的頁面可以被哪些來源所嵌入,作用于 <frame>, <iframe>, <embed>, <applet>,該指令不能通過 <meta>指定且只對非 HTML 檔案型別的資源生效;
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/501359.html
標籤:其他
