亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

目錄
什麼是CSP?
如何設(shè)置CSP?
內(nèi)聯(lián)腳本和eval 的問(wèn)題
開(kāi)發(fā)和上線階段的策略差異
首頁(yè) web前端 js教程 深入研究JavaScript內(nèi)容安全策略(CSP)

深入研究JavaScript內(nèi)容安全策略(CSP)

Jul 17, 2025 am 02:59 AM
csp

CSP(Content-Security-Policy)是一種防止XSS 等惡意代碼注入的前端安全機(jī)制。 1. 它通過(guò)HTTP 響應(yīng)頭聲明哪些資源可加載執(zhí)行,核心思想是“白名單”策略;2. 設(shè)置方式是在服務(wù)器響應(yīng)頭添加Content-Security-Policy 字段,如default-src、script-src 等指令控制不同資源類(lèi)型;3. 內(nèi)聯(lián)腳本和eval 默認(rèn)被阻止,可通過(guò)nonce 或hash 臨時(shí)允許,但推薦使用外部腳本文件;4. 開(kāi)發(fā)階段可用Content-Security-Policy-Report-Only 進(jìn)行測(cè)試並收集違規(guī)報(bào)告,上線後啟用嚴(yán)格策略以確保安全性與功能正常。

Deep Dive into JavaScript Content Security Policy (CSP)

CSP(Content Security Policy)是前端安全的一個(gè)重要機(jī)制,它能有效防止XSS(跨站腳本攻擊)等惡意代碼注入行為。在JavaScript 項(xiàng)目中合理配置CSP,不僅能增強(qiáng)網(wǎng)站的安全性,還能避免一些不必要的資源加載問(wèn)題。

Deep Dive into JavaScript Content Security Policy (CSP)

什麼是CSP?

簡(jiǎn)單來(lái)說(shuō),CSP 是一種聲明式的安全機(jī)制,通過(guò)HTTP 響應(yīng)頭Content-Security-Policy來(lái)告訴瀏覽器哪些資源可以加載、執(zhí)行,哪些不能。比如你可以限制頁(yè)面只能加載同源的腳本、禁止內(nèi)聯(lián)腳本執(zhí)行、不允許加載不明來(lái)源的圖片等等。

CSP 的核心思想是“白名單”,即只允許你信任的內(nèi)容運(yùn)行,其他的一律攔截。這對(duì)於現(xiàn)代Web 應(yīng)用,尤其是使用大量第三方腳本或用戶(hù)生成內(nèi)容的站點(diǎn)尤為重要。

Deep Dive into JavaScript Content Security Policy (CSP)

如何設(shè)置CSP?

要啟用CSP,最常見(jiàn)的方式是在服務(wù)器響應(yīng)頭中添加Content-Security-Policy字段。例如:

 Content-Security-Policy: default-src 'self'; script-src 'self' https://trusted-cdn.com

上面這行表示默認(rèn)所有資源都只能從當(dāng)前域名加載,而腳本還可以從https://trusted-cdn.com加載。

Deep Dive into JavaScript Content Security Policy (CSP)

常見(jiàn)的指令包括:

  • default-src :默認(rèn)策略,適用於未單獨(dú)指定的資源類(lèi)型。
  • script-src :控制哪些地方可以加載JS。
  • style-src :控制CSS 加載。
  • img-src :控製圖片來(lái)源。
  • connect-src :控制AJAX 請(qǐng)求的目標(biāo)地址。
  • object-src :控制插件如Flash 的加載(現(xiàn)在基本不用了)。
  • font-src :字體文件來(lái)源。
  • frame-srcchild-src :iframe 等嵌套內(nèi)容的來(lái)源。

你可以根據(jù)實(shí)際需求組合這些指令,逐步收緊策略。

內(nèi)聯(lián)腳本和eval 的問(wèn)題

很多網(wǎng)站為了方便,會(huì)直接寫(xiě)<script>...</script>或者用eval()執(zhí)行字符串代碼。但CSP 默認(rèn)會(huì)阻止這類(lèi)行為,因?yàn)樗鼈兪荴SS 攻擊的常見(jiàn)入口。

如果你必須使用內(nèi)聯(lián)腳本,有幾種方式可以繞過(guò)限制:

  • 使用nonce :為特定的<script>標(biāo)籤加上一個(gè)一次性密鑰,服務(wù)器在CSP 中聲明允許該nonce。

    示例:

     Content-Security-Policy: script-src &#39;nonce-abc123&#39;;

    HTML:

     <script nonce="abc123">alert(&#39;allowed&#39;);</script>
  • 使用hash :對(duì)內(nèi)聯(lián)腳本內(nèi)容進(jìn)行哈希計(jì)算,並在策略中允許該hash。

    示例:

     Content-Security-Policy: script-src &#39;sha256-abc...&#39;;

不過(guò)這兩種方法都不太推薦頻繁使用,因?yàn)榫S護(hù)起來(lái)麻煩,而且容易出錯(cuò)。更推薦的做法是把腳本移到外部文件中,這樣更容易管理和審核。

至於eval()new Function()這類(lèi)動(dòng)態(tài)執(zhí)行代碼的方法,默認(rèn)是被&#39;unsafe-eval&#39;控制的,建議盡量避免使用,或者明確禁止。

開(kāi)發(fā)和上線階段的策略差異

在開(kāi)發(fā)環(huán)境,我們通常希望調(diào)試方便,所以CSP 可以寬鬆一點(diǎn),比如允許任意來(lái)源的腳本加載,甚至允許內(nèi)聯(lián)腳本。但到了生產(chǎn)環(huán)境,就應(yīng)該嚴(yán)格限制,只允許必要的資源加載。

可以通過(guò)兩個(gè)不同的策略頭來(lái)實(shí)現(xiàn):

  • 上線環(huán)境用Content-Security-Policy
  • 開(kāi)發(fā)環(huán)境用Content-Security-Policy-Report-Only ,這個(gè)頭不會(huì)真正阻止資源加載,只會(huì)報(bào)告違規(guī)行為,適合測(cè)試

舉個(gè)例子:

 Content-Security-Policy-Report-Only: default-src &#39;self&#39;; report-uri /csp-violation-report-endpoint/

這樣你可以在不中斷功能的前提下,觀察當(dāng)前頁(yè)面是否有違反CSP 的情況,再逐步調(diào)整策略。

另外,建議在部署前做一次完整的CSP 檢查,確保沒(méi)有遺漏的關(guān)鍵資源,否則可能導(dǎo)致頁(yè)面功能異常。


基本上就這些。 CSP 不復(fù)雜但容易忽略細(xì)節(jié),尤其在大型項(xiàng)目中,前期規(guī)劃好策略結(jié)構(gòu)非常重要。

以上是深入研究JavaScript內(nèi)容安全策略(CSP)的詳細(xì)內(nèi)容。更多資訊請(qǐng)關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願(yuàn)投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請(qǐng)聯(lián)絡(luò)admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動(dòng)的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強(qiáng)大的PHP整合開(kāi)發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺(jué)化網(wǎng)頁(yè)開(kāi)發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級(jí)程式碼編輯軟體(SublimeText3)

熱門(mén)話題

Laravel 教程
1597
29
PHP教程
1488
72
什麼是內(nèi)容安全策略(CSP)標(biāo)頭,為什麼重要? 什麼是內(nèi)容安全策略(CSP)標(biāo)頭,為什麼重要? Apr 09, 2025 am 12:10 AM

CSP重要因?yàn)樗芊拦?fàn)XSS攻擊和限制資源加載,提升網(wǎng)站安全性。 1.CSP是HTTP響應(yīng)頭的一部分,通過(guò)嚴(yán)格策略限制惡意行為。 2.基本用法是只允許從同源加載資源。 3.高級(jí)用法可設(shè)置更細(xì)粒度的策略,如允許特定域名加載腳本和樣式。 4.使用Content-Security-Policy-Report-Only頭部可調(diào)試和優(yōu)化CSP策略。

PHP8.1發(fā)布:支援CSP(Content Security Policy) PHP8.1發(fā)布:支援CSP(Content Security Policy) Jul 09, 2023 pm 06:52 PM

PHP8.1發(fā)布:支持CSP(內(nèi)容安全策略)隨著網(wǎng)路的發(fā)展,網(wǎng)路安全問(wèn)題日益成為人們關(guān)注的焦點(diǎn)。為了保護(hù)使用者的隱私和安全,更多的網(wǎng)站開(kāi)始採(cǎi)用內(nèi)容安全策略(CSP)來(lái)限制網(wǎng)頁(yè)中可以執(zhí)行的內(nèi)容和載入的資源。而在最新發(fā)布的PHP8.1中,引入了對(duì)CSP的本地支持,為開(kāi)發(fā)者提供了更好的工具來(lái)加強(qiáng)網(wǎng)頁(yè)的安全性。 CSP允許網(wǎng)頁(yè)的開(kāi)發(fā)者透過(guò)指定允許載入的資源來(lái)源,限制網(wǎng)頁(yè)

微軟分享有用的群組原則教程,以充分利用 Windows 更新 微軟分享有用的群組原則教程,以充分利用 Windows 更新 May 02, 2023 pm 09:22 PM

微軟為組織分享了一個(gè)有用的參考,以便為各種裝置設(shè)定適當(dāng)?shù)娜航M原則設(shè)定。這些包括:?jiǎn)斡脩?hù)或個(gè)人設(shè)備多用戶(hù)設(shè)備教育設(shè)備售貨亭和廣告牌工廠機(jī)器、過(guò)山車(chē)和類(lèi)似的東西微軟團(tuán)隊(duì)會(huì)議室設(shè)備但是,該公司建議大多數(shù)用例使用預(yù)設(shè)設(shè)定。此處討論的政策可在此處找到:政策CSP-更新管理單用戶(hù)設(shè)備單用戶(hù)設(shè)備是由一個(gè)人使用的用戶(hù)擁有或公司擁有的設(shè)備。除了個(gè)人計(jì)算任務(wù)之外,這些設(shè)備還可用於混合工作活動(dòng),包括會(huì)議、演示和任何數(shù)量的其他任務(wù)。對(duì)於這些任務(wù)中的任何一項(xiàng),中斷都會(huì)阻礙生產(chǎn)力。鑑於這些設(shè)備經(jīng)常連接到公司網(wǎng)路並存取敏感資訊

Go中的並發(fā)模式:CSP與訊息傳遞 Go中的並發(fā)模式:CSP與訊息傳遞 Jun 02, 2024 pm 01:08 PM

在Go中進(jìn)行並發(fā)程式設(shè)計(jì)時(shí),理解和使用適當(dāng)?shù)哪J街陵P(guān)重要。 CSP是一種基於順序進(jìn)程的並發(fā)模式,使用Goroutine實(shí)現(xiàn),適合簡(jiǎn)單的通訊。訊息傳遞是一種使用通道作為訊息佇列進(jìn)行通訊的模式,適用於複雜或多個(gè)Goroutine互動(dòng)的場(chǎng)景。實(shí)際應(yīng)用中,可以使用CSP來(lái)實(shí)現(xiàn)簡(jiǎn)單的訊息服務(wù),透過(guò)通道在不同的Goroutine之間發(fā)送和接收訊息。

深入研究JavaScript內(nèi)容安全策略(CSP) 深入研究JavaScript內(nèi)容安全策略(CSP) Jul 17, 2025 am 02:59 AM

CSP(Content-Security-Policy)是一種防止XSS等惡意代碼注入的前端安全機(jī)制。 1.它通過(guò)HTTP響應(yīng)頭聲明哪些資源可加載執(zhí)行,核心思想是“白名單”策略;2.設(shè)置方式是在服務(wù)器響應(yīng)頭添加Content-Security-Policy字段,如default-src、script-src等指令控制不同資源類(lèi)型;3.內(nèi)聯(lián)腳本和eval默認(rèn)被阻止,可通過(guò)nonce或hash臨時(shí)允許,但推薦使用外部腳本文件;4.開(kāi)發(fā)階段可用Content-Security-Policy-Report

了解內(nèi)容安全策略(CSP) 了解內(nèi)容安全策略(CSP) Jul 26, 2025 am 07:28 AM

CSPisacriticalsecuritymeasurethathelpspreventXSS,clickjacking,andcodeinjectionattacksbyrestrictingwhichresourcesabrowsercanload.1.ItworksviatheContent-Security-PolicyHTTPheader,enforcingawhitelistoftrustedsources.2.Keydirectivesincludedefault-src,scr

JavaScript應(yīng)用程序的高級(jí)CSP指令 JavaScript應(yīng)用程序的高級(jí)CSP指令 Jul 30, 2025 am 12:37 AM

CSP進(jìn)階技巧包括:1.使用'strict-dynamic'實(shí)現(xiàn)動(dòng)態(tài)腳本安全加載,配合隨機(jī)nonce保證動(dòng)態(tài)生成腳本的合法性;2.通過(guò)connect-src和frame-src控制第三方SDK的網(wǎng)絡(luò)請(qǐng)求和iframe嵌入源;3.移除'unsafe-eval'來(lái)禁用eval類(lèi)型函數(shù)執(zhí)行;4.利用report-to上報(bào)違規(guī)行為,用於調(diào)試和監(jiān)控CSP執(zhí)行情況。這些方法在保障現(xiàn)代SPA應(yīng)用功能的同時(shí)增強(qiáng)了安全性。

使用HTML中的內(nèi)容安全策略(CSP)增強(qiáng)安全性 使用HTML中的內(nèi)容安全策略(CSP)增強(qiáng)安全性 Jul 15, 2025 am 02:43 AM

CSP是通過(guò)限制資源加載來(lái)源提升網(wǎng)頁(yè)安全的機(jī)制。其核心是通過(guò)HTTP頭或meta標(biāo)籤設(shè)定策略,控制瀏覽器僅加載指定來(lái)源的腳本、樣式等資源,防止XSS攻擊。配置CSP需設(shè)置Content-Security-Policy頭,例如default-src'self'限制默認(rèn)資源來(lái)源,script-src指定允許加載的腳本源,style-src控製樣式表加載。啟用後常見(jiàn)問(wèn)題包括資源被誤攔截,可通過(guò)report-uri上報(bào)、Report-Only模式測(cè)試、避免使用'unsafe-inline'和'unsaf

See all articles