§設定安全性標頭
Play 提供安全性標頭篩選器,可讓您在 HTTP 回應中設定一些預設標頭,以減輕安全性問題,並為新應用程式提供額外的防護層級。
§啟用安全性標頭篩選器
注意:從 Play 2.6.x 開始,安全性標頭篩選器已包含在 Play 的預設篩選器清單中,會自動套用至專案。請參閱 篩選器頁面 以取得更多資訊。
若要手動啟用安全性標頭篩選器,請將安全性標頭篩選器新增至 application.conf
中的篩選器
play.filters.enabled += "play.filters.headers.SecurityHeadersFilter"
§設定安全性標頭
可在 play.filters.headers 套件中取得 Scaladoc。
篩選器會自動在 HTTP 回應中設定標頭。設定可透過 application.conf
中的下列設定進行設定
play.filters.headers.frameOptions
- 設定 X-Frame-Options,預設為「DENY」。play.filters.headers.xssProtection
- 設定 X-XSS-Protection,預設為「1; mode=block」。play.filters.headers.contentTypeOptions
- 設定 X-Content-Type-Options,預設為「nosniff」。play.filters.headers.permittedCrossDomainPolicies
- 設定 X-Permitted-Cross-Domain-Policies,預設為「master-only」。play.filters.headers.referrerPolicy
- 設定 Referrer Policy,預設為「origin-when-cross-origin, strict-origin-when-cross-origin」。play.filters.headers.contentSecurityPolicy
- 設定 Content-Security-Policy,預設為「default-src ‘self’」。
注意:
contentSecurityPolicy
屬性已於 Play 2.7 中棄用,且預設值已設定為null
。有關詳細資訊,請參閱 CspFilter。
任何標頭都可以透過設定 null
的組態值來停用,例如
play.filters.headers.frameOptions = null
有關組態選項的完整清單,請參閱 Play 篩選器 reference.conf
。
§動作特定覆寫
可以在特定動作中使用結果上的 withHeaders
來覆寫安全性標頭
Ok("Index").withHeaders(SecurityHeadersFilter.REFERRER_POLICY -> "my page-specific header")
withHeaders
中未提及的任何安全性標頭都將使用通常組態的值
(如果存在)或預設值。除非play.filters.headers.allowActionSpecificHeaders
在組態中設定為 true
,否則將忽略動作特定的安全性標頭。
下一頁:組態 CORS
在此文件說明中發現錯誤?此頁面的原始程式碼可以在 這裡 找到。在閱讀 文件說明指南 後,歡迎貢獻拉取請求。有任何問題或建議要分享嗎?請前往 我們的社群論壇 與社群展開對話。