security_headers
'security_headers' 指令启用在 NGINX 响应中自动添加一组默认的安全 HTTP 头。
说明
'security_headers' 指令属于专门用于在 HTTP 响应中发送安全头的 NGINX 模块。当将此指令设置为 'on' 时,会启用一组预定义的 HTTP 安全头,从而增强 Web 应用的安全性。这些头包括 'X-Frame-Options' 设置为 'SAMEORIGIN','X-XSS-Protection' 被禁用,值为 '0','Referrer-Policy' 设置为 'strict-origin-when-cross-origin',以及 'X-Content-Type-Options' 设置为 'nosniff'。该模块通过检查所提供的内容类型来工作,确保仅在适用的地方(例如 HTML 内容)应用正确的安全头,而不会对其他内容类型(如 CSS 或 JS)发送不必要的头。该指令的一项突出特性是它符合现代网络标准,尤其是在处理 'Strict-Transport-Security' (HSTS) 头方面——该头包含在此模块的默认设置中。这意味着如果启用 'security_headers' 指令,它会确保适当地应用 HSTS 头。但有一个注意事项:如果包含 HSTS,'hsts_preload' 行为可能会导致站点被加入 Chrome 的预加载列表,这对于需要在某些时候通过明文 HTTP 可访问的站点来说可能并非期望。因此,管理员必须确保充分理解使用该指令的影响,特别是对安全性以及任何子域在 HTTP 可访问性方面的影响。
配置示例
http {
security_headers on;
server {
location / {
# Additional configurations
}
}
}在启用 HSTS 之前,确保所有子域名都使用 HTTPS,以避免在预加载时出现意外情况。
将此指令与不兼容的配置一起使用,可能导致安全头的应用出现意外行为。
只有在确认所需安全策略的情况下才启用,因为某些安全头配置不当可能会妨碍应用功能。