用於檢查網站的當前標頭。
標頭按重要性順序列出,但是請注意,除非從頭開始設計應用程式,否則很難實施適當的安全內容安全策略。
嘗試使用標頭獲得一些快速優勢:
http-strict-transport-security
X-Frame-Options
X-XSS-Protection
X-Content-Type-Options
https://observatory.mozilla.org
http-strict-transport-security
從現在起,嚴格的傳輸安全標頭告訴瀏覽器通過加密連接載入網站。
這有助於避免所謂的SSL分離攻擊,即處於中間人位置的攻擊者將用戶降級為不安全的連接。
ttp-strict-transport-security:max-age = 86400
``
ttp-strict-transport-security:max-age = 63072000
``
內容安全政策(CSP)
該標頭旨在減少甚至消除XSS(跨站腳本攻擊)的影響。
它可以用來告訴瀏覽器網站應該從何處載入資源。
可以在這裡找到一個很好的工具來生成策略並獲得所有指令的說明:
https://report-uri.io/home/generate
引用Mozilla:
CSP的主要為禁用不安全的JavaScript嵌入式寫法。
行內(inline)JavaScript若包含不正確的用戶輸入,其轉義時可能會生成由Web瀏覽器解釋為JavaScript的程式碼。
通過使用CSP禁用嵌入式JavaScript,您可以有效消除針對您站點的幾乎所有XSS攻擊。
https://csp.withgoogle.com/
Google已發現,大多數利用白名單的CSP都不會阻止XSS,因為由於白名單網域域(例如google.com)上存在可濫用的端點,它們可以被繞開。
因此推薦的方法不再是白名單,而是使用雜湊或亂數。
它要求每個''標籤都具有一個關聯的隨機生成的亂數,該亂數在服務器響應的CSP頭中設定。
script src =" https://www.example.com/script.js" nonce =" {{csp-nonce}}"> </ script>
``
*設定範例:**
object-src'none';
script-src'nonce- {random}''unsafe-inline''unsafe-eval''strict-dynamic'https:http :;
base-uri'none';
frame-ancestors'none';
```
報告模式:(Content-Security-Policy-Report-Only)
可能需要一個報告端點,才能在'<您的域名>/csp-violation-report-endpoint'接收CSP違規報告。 object-src'none'; script-src'nonce- {random}''unsafe-inline''unsafe-eval''strict-dynamic'https:http :; base-uri'none'; frame-ancestors'none'; report-uri/csp-violation-report-endpoint/
X-Frame-Options
此標頭告訴瀏覽器其他網站是否允許構架網站。
通過將此標頭設定:為允許的域列表,我們可以防止Clickjacking攻擊。
https://www.owasp.org/index.php/Clickjacking
推薦設定:
X-Frame-Options可由"frame-ancestors"屬性代替。
此屬性更加靈活。 X-Frame-Options:DENY
frame-ancestors'none';
X-XSS-Protection
大多數瀏覽器中內置的跨站腳本過濾器的配置。
https://scotthelme.co.uk/hardening-your-http-response-headers/#x-xss-protection
推薦設定: X-XSS-Protection:1;模式=阻止
X-Content-Type-Options
該標頭告訴瀏覽器不要猜測所提供內容的MIME(多用途Internet郵件擴展名)類型,而是信任" Content-Type"標頭。如果沒有設定:X-Content-Type-Options標頭,則某些較舊的瀏覽器可能會錯誤地將文件檢測為腳本和样式表,從而可能導致XSS攻擊。
推薦設定:: X-Content-Type-Options:nosniff
推薦政策
標頭基本上控制在引用標頭中發送的內容。使用此標頭的安全性在於避免了URL中傳輸的會話標識符或其他敏感信息通過引薦標頭傳遞到其他域的情況。這裡有不同的選項,範圍從不發送任何引薦標頭到僅發送域(源)。最佳設定:必須基於應用程式對Referer標頭的使用來確定。推薦的設定:"來源"僅發送域名,而不發送URL的路徑部分。之所以選擇它,是因為它在大多數瀏覽器中都受支持。
推薦設定:
我們可能還想執行" Referrer-Policy:strict-origin",以僅將引薦來源標頭髮送到HTTPS站點,以保護用戶的隱私,但Edge和Safari目前不支持。
API
對於API(應用程式編程接口),我們要確保對流量進行加密並限制XSS漏洞的潛在影響,例如在錯誤頁面中,則由於內容安全策略不允許使用腳本或iframe,因此無法將其用於運行Javascript。請注意,對於在同一域中具有文檔的API(例如Swagger),這將無法正常工作,需要進行調整。
推薦設定::
內容安全策略:default-src'none';框架祖先"無"
嚴格的運輸安全性:最大年齡= 31536000 X-Content-Type-Options:nosniff
參考資源:
有關Mozilla關於Web應用程式安全性的更多最佳實踐和建議,請參見以下鏈接: