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

目錄 搜尋
Guides Access control CORS Authentication Browser detection using the user agent Caching Caching FAQ Compression Conditional requests Connection management in HTTP 1.x Content negotiation Content negotiation: List of default Accept values Cookies CSP Messages Overview Protocol upgrade mechanism Proxy servers and tunneling Proxy servers and tunneling: Proxy Auto-Configuration (PAC) file Public Key Pinning Range requests Redirections Resources and specifications Resources and URIs Response codes Server-Side Access Control Session Guides: Basics Basics of HTTP Choosing between www and non-www URLs Data URIs Evolution of HTTP Identifying resources on the Web MIME Types MIME types: Complete list of MIME types CSP Content-Security-Policy Content-Security-Policy-Report-Only CSP: base-uri CSP: block-all-mixed-content CSP: child-src CSP: connect-src CSP: default-src CSP: font-src CSP: form-action CSP: frame-ancestors CSP: frame-src CSP: img-src CSP: manifest-src CSP: media-src CSP: object-src CSP: plugin-types CSP: referrer CSP: report-uri CSP: require-sri-for CSP: sandbox CSP: script-src CSP: style-src CSP: upgrade-insecure-requests CSP: worker-src Headers Accept Accept-Charset Accept-Encoding Accept-Language Accept-Ranges Access-Control-Allow-Credentials Access-Control-Allow-Headers Access-Control-Allow-Methods Access-Control-Allow-Origin Access-Control-Expose-Headers Access-Control-Max-Age Access-Control-Request-Headers Access-Control-Request-Method Age Allow Authorization Cache-Control Connection Content-Disposition Content-Encoding Content-Language Content-Length Content-Location Content-Range Content-Type Cookie Cookie2 Date DNT ETag Expect Expires Forwarded From Headers Host If-Match If-Modified-Since If-None-Match If-Range If-Unmodified-Since Keep-Alive Large-Allocation Last-Modified Location Origin Pragma Proxy-Authenticate Proxy-Authorization Public-Key-Pins Public-Key-Pins-Report-Only Range Referer Referrer-Policy Retry-After Server Set-Cookie Set-Cookie2 SourceMap Strict-Transport-Security TE Tk Trailer Transfer-Encoding Upgrade-Insecure-Requests User-Agent User-Agent: Firefox Vary Via Warning WWW-Authenticate X-Content-Type-Options X-DNS-Prefetch-Control X-Forwarded-For X-Forwarded-Host X-Forwarded-Proto X-Frame-Options X-XSS-Protection Methods CONNECT DELETE GET HEAD Methods OPTIONS PATCH POST PUT Status 100 Continue 101 Switching Protocols 200 OK 201 Created 202 Accepted 203 Non-Authoritative Information 204 No Content 205 Reset Content 206 Partial Content 300 Multiple Choices 301 Moved Permanently 302 Found 303 See Other 304 Not Modified 307 Temporary Redirect 308 Permanent Redirect 400 Bad Request 401 Unauthorized 403 Forbidden 404 Not Found 405 Method Not Allowed 406 Not Acceptable 407 Proxy Authentication Required 408 Request Timeout 409 Conflict 410 Gone 411 Length Required 412 Precondition Failed 413 Payload Too Large 414 URI Too Long 415 Unsupported Media Type 416 Range Not Satisfiable 417 Expectation Failed 426 Upgrade Required 428 Precondition Required 429 Too Many Requests 431 Request Header Fields Too Large 451 Unavailable For Legal Reasons 500 Internal Server Error 501 Not Implemented 502 Bad Gateway 503 Service Unavailable 504 Gateway Timeout 505 HTTP Version Not Supported 511 Network Authentication Required Status
文字

內(nèi)容安全策略(CSP)是一個附加的安全層,有助于檢測和緩解某些類型的攻擊,包括跨站點腳本(XSS)和數(shù)據(jù)注入攻擊。這些攻擊用于從數(shù)據(jù)竊取到網(wǎng)站污損或惡意軟件分發(fā)的所有事情。

CSP被設(shè)計為完全向后兼容(除CSP版本2,其中有在向后兼容性一些明確提到的不一致性;更多的細節(jié)在這里第1.1節(jié))。不支持它的瀏覽器仍然支持實現(xiàn)它的服務(wù)器,反之亦然:不支持CSP的瀏覽器完全忽略它,像往常一樣運行,默認為Web內(nèi)容的標準同源策略。如果站點不提供CSP頭,瀏覽器同樣使用標準的同源策略。

要啟用CSP,您需要配置您的Web服務(wù)器以返回Content-Security-PolicyHTTP標頭(有時您會看到X-Content-Security-Policy標題的提及,但這是舊版本,不需要再指定)。

或者,該<meta>元素可用于配置策略,例如:<meta http-equiv="Content-Security-Policy" content="default-src 'self'; img-src https://*; child-src 'none';">

潛在注意點

緩解跨站點腳本

CSP的主要目標是減輕和報告XSS攻擊。XSS攻擊利用瀏覽器對從服務(wù)器接收的內(nèi)容的信任。惡意腳本由受害者的瀏覽器執(zhí)行,因為瀏覽器信任內(nèi)容的來源,即使它不是來自它應(yīng)該來自的地方。

CSP使服務(wù)器管理員可以通過指定瀏覽器應(yīng)該認為是可執(zhí)行腳本的有效來源的域來減少或消除XSS可能發(fā)生的向量。然后,兼容CSP的瀏覽器將僅執(zhí)行從從這些列入白名單的域接收的源文件中加載的腳本,而忽略所有其他腳本(包括內(nèi)聯(lián)腳本和事件處理HTML屬性)。

作為最終的保護形式,希望永遠不允許腳本執(zhí)行的站點可以選擇全局禁止腳本執(zhí)行。

緩解數(shù)據(jù)包-嗅探攻擊

除了限制可以加載內(nèi)容的域外,服務(wù)器還可以指定允許使用哪些協(xié)議; 例如(理想情況下,從安全角度來看),服務(wù)器可以指定必須使用HTTPS加載所有內(nèi)容。完整的數(shù)據(jù)傳輸安全策略不僅包括對數(shù)據(jù)傳輸實施HTTPS,還包括使用安全標記對所有Cookie進行標記,并提供從HTTP頁面到其HTTPS對等方的自動重定向。網(wǎng)站也可能使用Strict-Transport-SecurityHTTP標頭來確保瀏覽器僅通過加密通道連接到它們

使用CSP

配置內(nèi)容安全策略包括將Content-Security-PolicyHTTP頭添加到網(wǎng)頁,并為其提供值以控制允許用戶代理為該頁加載的資源。例如,上傳和顯示圖像的頁面可能允許來自任何地方的圖像,但將表單操作限制為特定的端點。正確設(shè)計的內(nèi)容安全策略有助于保護頁面免受跨站點腳本攻擊。本文解釋了如何正確構(gòu)建這些頭文件,并提供了示例。

指定您的策略

您可以使用Content-Security-PolicyHTTP標頭指定您的策略,如下所示:

Content-Security-Policy: policy

該策略是一個包含描述您的內(nèi)容安全策略的策略指令的字符串。

寫一個策略

使用一系列策略指令來描述策略,每個策略指令都描述特定資源類型或策略區(qū)域的策略。你的策略應(yīng)該包含一個default-src策略指令,當(dāng)它們沒有自己的策略時,它就是其他資源類型的回退(完整列表請參閱default-src指令的描述)。策略需要包含一個default-srcscript-src指令以防止內(nèi)聯(lián)腳本運行,并阻止使用eval()。策略需要包含一個default-srcstyle-src指令,以限制從<style>元素或style屬性應(yīng)用內(nèi)聯(lián)樣式。

示例:常見用例

本節(jié)提供了一些常見安全策略方案的示例。

例1

網(wǎng)站管理員希望所有內(nèi)容都來自網(wǎng)站本身(不包括子域名)。

內(nèi)容安全策略:default-src'self'

例2

網(wǎng)站管理員希望允許來自受信任域及其所有子域的內(nèi)容(它不必與CSP設(shè)置的域相同)。

內(nèi)容安全策略: default-src 'self' *.trusted.com

例3

網(wǎng)站管理員希望允許Web應(yīng)用程序的用戶將來自任何來源的圖像包含在自己的內(nèi)容中,但要將音頻或視頻媒體限制為可信任的提供者,并且僅將所有腳本限制在承載受信任代碼的特定服務(wù)器上。

內(nèi)容安全策略: default-src 'self'; img-src *; media-src media1.com media2.com; script-src userscripts.example.com

在此,默認情況下,僅允許來自文檔來源的內(nèi)容,但以下情況除外:

  • 圖像可能從任何地方加載(請注意“*”通配符)。

  • 媒體只允許來自media1.com和media2.com(而不是來自這些網(wǎng)站的子域)。

  • 可執(zhí)行腳本只允許來自userscripts.example.com。

例4

網(wǎng)上銀行網(wǎng)站的網(wǎng)站管理員希望確保使用SSL加載其所有內(nèi)容,以防止攻擊者竊聽請求。

內(nèi)容安全策略:default-src https://onlinebanking.jumbobank.com

服務(wù)器僅允許訪問通過單一來源onlinebanking.jumbobank.com通過HTTPS加載的文檔。

例5

Web郵件網(wǎng)站的網(wǎng)站管理員希望允許在電子郵件中使用HTML,以及從任何地方加載圖像,但不能使用JavaScript或其他潛在危險的內(nèi)容。

內(nèi)容安全策略: default-src 'self' *.mailsite.com; img-src *

請注意,這個例子沒有指定一個script-src; 在示例CSP中,該站點使用default-src指令指定的設(shè)置,這意味著腳本只能從源服務(wù)器加載。

測試你的策略

為了簡化部署,可以將CSP部署為僅限報告模式。該策略未被強制執(zhí)行,但任何違規(guī)都會報告給提供的URI。此外,只有報告的標題可用于測試未來的政策修訂版本,而無需實際部署。

您可以使用Content-Security-Policy-Report-OnlyHTTP標頭指定您的策略,如下所示:

內(nèi)容安全策略報告:策略

如果Content-Security-Policy-Report-Only標題和Content-Security-Policy標題都出現(xiàn)在相同的響應(yīng)中,則兩個策略都會得到遵守。策略生成報告時Content-Security-Policy強制執(zhí)行頭中指定的Content-Security-Policy-Report-Only策略,但未強制實施。

如果策略包含有效的report-uri指令,那么支持CSP的瀏覽器會始終發(fā)送違規(guī)報告,以便違反您建立的策略。

啟用報告

默認情況下,不發(fā)送違規(guī)報告。要啟用違規(guī)報告,您需要指定report-uri策略指令,至少提供一個要將報告發(fā)送到的URI:

內(nèi)容安全策略: default-src 'self'; report-uri http://reportcollector.example.com/collector.cgi

然后,您需要設(shè)置您的服務(wù)器以接收報告; 它可以以您認為合適的方式存儲或處理它們。

違規(guī)報告語法

報告JSON對象包含以下數(shù)據(jù):

document-uri發(fā)生違規(guī)的文檔的URI。referrer違規(guī)發(fā)生的文件的referrer。blocked-uri內(nèi)容安全策略阻止加載的資源的URI。如果阻止的URI來自與document-uri不同的來源,則阻止的URI將被截斷以僅包含方案,主機和端口。violated-directive違反政策部分的名稱。original-policy原始策略由Content-Security-PolicyHTTP頭指定。

示例-違規(guī)報告

讓我們考慮一個位于的頁面http://example.com/signup.html。它使用以下策略,禁止除了樣式表之外的所有內(nèi)容cdn.example.com。

內(nèi)容安全策略: default-src 'none'; style-src cdn.example.com; report-uri /_/csp-reports

HTML的signup.html外觀如下所示:

<!DOCTYPE html><html>  <head>    <title>Sign Up</title>    <link rel="stylesheet" href="css/style.css">  </head>  <body>    ... Content ...  </body></html>

你能發(fā)現(xiàn)錯誤嗎?樣式表只允許加載cdn.example.com,但網(wǎng)站嘗試從它自己的原點加載一個(http://example.com)。能夠執(zhí)行CSP的瀏覽器將下列違規(guī)報告作為POST請求發(fā)送至http://example.com/_/csp-reports訪問文檔時:

{  "csp-report": {    "document-uri": "http://example.com/signup.html",    "referrer": "",    "blocked-uri": "http://example.com/css/style.css",    "violated-directive": "style-src cdn.example.com",    "original-policy": "default-src 'none'; style-src cdn.example.com; report-uri /_/csp-reports"  }}

正如您所看到的,報告包含違規(guī)資源的完整路徑blocked-uri。這并非總是如此。例如,當(dāng)signup.html試圖從中加載CSS時http://anothercdn.example.com/stylesheet.css,瀏覽器將包含完整路徑,而只包含origin(http://anothercdn.example.com)。CSP規(guī)范給出了這種奇怪行為的解釋??傊@是為了防止泄露有關(guān)跨源資源的敏感信息。

瀏覽器兼容性

特征

谷歌

Edge

火狐

Internet Explorer

Opera

Safari

Content-Security-Policy

251

14

23.02

103

15

74

base-uri

40

No

35.0

No

27

10

block-all-mixed-content

(Yes)

?

48.0

No

(Yes)

?

child-src

40

No

45.0

No

27

10

connect-src

25

14

23.06

No

15

7

default-src

25

14

23.0

No

15

7

disown-opener

No

No

No

No

No

No

font-src

25

14

23.0

No

15

7

form-action

40

No

36.0

No

27

10

frame-ancestors

40

No

33.0

No

26

10

frame-src

25

14

23.0

No

15

7

img-src

25

14

23.0

No

15

7

manifest-src

(Yes)

No

41.0

No

(Yes)

No

media-src

25

14

23.0

No

15

7

navigation-to

No

No

No

No

No

No

object-src

25

14

23.0

No

15

7

plugin-types

40

No

No7

No

27

10

referrer

33 — 56

No

37.08

No

(Yes) — 43

No

report-sample

59

?

?

?

46

?

report-to

No

No

No

No

No

No

report-uri

25

14

23.0

No

15

7

require-sri-for

54

No

49.0

No

41

No

sandbox

25

14

50.0

10

15

7

script-src

25

14

23.0

No

15

7

strict-dynamic

52

No

52.0

No

39

No

style-src

25

14

23.0

No

15

7

upgrade-insecure-requests

43

No9

42.0

No

30

No

worker-src

59

No

No10

No

48

No

Feature

Android

Chrome for Android

Edge mobile

Firefox for Android

IE mobile

Opera Android

iOS Safari

Content-Security-Policy

(Yes)

(Yes)

(Yes)

23.0

?

?

7.15

base-uri

(Yes)

(Yes)

No

35.0

No

?

9.3

block-all-mixed-content

(Yes)

(Yes)

?

48.0

No

?

?

child-src

(Yes)

(Yes)

No

45.0

No

?

9.3

connect-src

(Yes)

(Yes)

?

23.0

No

?

7.1

default-src

(Yes)

(Yes)

?

23.0

No

?

7.1

disown-opener

No

No

No

No

No

No

No

font-src

(Yes)

(Yes)

?

23.0

No

?

7.1

form-action

(Yes)

(Yes)

No

36.0

No

?

9.3

frame-ancestors

?

(Yes)

No

33.0

No

?

9.3

frame-src

(Yes)

(Yes)

?

23.0

No

?

7.1

img-src

(Yes)

(Yes)

?

23.0

No

?

7.1

manifest-src

(Yes)

(Yes)

No

41.0

No

?

No

media-src

(Yes)

(Yes)

?

23.0

No

?

7.1

navigation-to

No

No

No

No

No

No

No

object-src

(Yes)

(Yes)

?

23.0

No

?

7.1

plugin-types

(Yes)

(Yes)

No

No

No

?

9.3

referrer

33 — 56

33 — 56

No

37.08

No

(Yes) — 43

No

report-sample

59

59

?

?

?

46

?

report-to

No

No

No

No

No

No

No

report-uri

(Yes)

(Yes)

?

23.0

No

?

7.1

require-sri-for

54

54

No

49.0

No

41

No

sandbox

(Yes)

(Yes)

?

50.0

10

?

7.1

script-src

(Yes)

(Yes)

?

23.0

No

?

7.1

strict-dynamic

52

52

No

No

No

39

No

style-src

(Yes)

(Yes)

?

23.0

No

?

7.1

upgrade-insecure-requests

43

43

No

42.0

No

30

No

worker-src

59

59

No

No

No

48

No

1.在Chrome 14中作為X-Webkit-CSP標頭實現(xiàn)。

2.在Firefox 4中作為X-Content-Security-Policy頭部實施。

3.作為X-Content-Security-Policy頭部實現(xiàn),只支持'sandbox'指令。

4.在Safari 6中實現(xiàn)為X-Webkit-CSP頭。

5.在iOS 5.1中作為X-Webkit-CSP頭部實現(xiàn)。

6.在Firefox 50之前,<a>元素的ping屬性未被connect-src覆蓋。

7.請參閱Bugzilla錯誤1045899。

8.將被刪除,請參閱Bugzilla錯誤1302449。

9.正考慮未來發(fā)布。

10.參見Bugzilla錯誤1302667。

擴展內(nèi)容

  • 內(nèi)容安全政策

  • 內(nèi)容安全政策只讀報告

  • WebExtensions中的內(nèi)容安全性

  • 在Firefox開發(fā)者工具中顯示安全和隱私政策

上一篇: 下一篇: