当前位置: 代码网 > 服务器>网络>https > Nginx HttpHeader增加几个关键的安全选项问题小结

Nginx HttpHeader增加几个关键的安全选项问题小结

2024年12月08日 https 我要评论
针对像德勤这样的专业渗透测试(pentest)的场景中,为了确保网站的安全性并通过严格的安全审查,需要为这些安全头配置更细致、专业的参数。以下是对每个选项的建议以及设置值的详细说明:1.strict-

针对像德勤这样的专业渗透测试(pentest)的场景中,为了确保网站的安全性并通过严格的安全审查,需要为这些安全头配置更细致、专业的参数。

以下是对每个选项的建议以及设置值的详细说明:

1. strict-transport-security (hsts)

确保所有通信强制通过 https 并防止降级攻击。

推荐值:

add_header strict-transport-security "max-age=31536000; includesubdomains; preload" always;

参数解释:

  • max-age=31536000:hsts 缓存有效期设为 1 年(以秒为单位),确保长期有效。
  • includesubdomains:将 hsts 策略扩展到所有子域名,避免主域和子域之间的攻击风险。
  • preload:将域名提交到 hsts 预加载列表以防止首次访问时的降级攻击。需要在 hsts preload list 提交域名。

2. content-security-policy (csp)

定义允许加载的内容来源,防止跨站脚本(xss)和数据注入攻击。

推荐值(需根据业务需求定制):

add_header content-security-policy "default-src 'none'; script-src 'self'; style-src 'self'; img-src 'self' data:; font-src 'self'; object-src 'none'; frame-ancestors 'none'; base-uri 'self'; form-action 'self';" always;

参数解释:

  • default-src 'none':默认禁止加载任何外部资源。
  • script-src 'self':仅允许加载本域的脚本。
  • style-src 'self':仅允许加载本域的样式。
  • img-src 'self' data::仅允许加载本域的图片和 base64 内嵌的图片。
  • font-src 'self':仅允许加载本域的字体。
  • object-src 'none':禁止加载插件内容(如 flash)。
  • frame-ancestors 'none':防止网站被嵌入到 iframe 中,防止点击劫持攻击。
  • base-uri 'self':限制 <base> 标签的 url。
  • form-action 'self':只允许表单提交到本站,防止 csrf 攻击。

注意:

  • csp 策略需与网站的实际需求相匹配,以避免破坏正常功能。
  • 如果网站需要使用第三方资源(如 google fonts 或 cdn),需明确指定来源,例如:
    script-src 'self' https://example.com; style-src 'self' https://fonts.googleapis.com;.

3. x-content-type-options

防止 mime 类型混淆攻击,强制浏览器遵循 content-type 响应头。

推荐值:

add_header x-content-type-options "nosniff" always;

参数解释:

  • nosniff:禁止浏览器进行内容类型嗅探,防止将非预期内容(如脚本文件)执行。

4. x-xss-protection

启用浏览器的内置 xss 保护机制(某些现代浏览器已默认禁用该功能)。

推荐值:

add_header x-xss-protection "1; mode=block" always;

参数解释:

  • 1:启用 xss 保护。
  • mode=block:检测到潜在攻击时,阻止页面加载,而不是仅仅清理恶意内容。

注意:

  • 当前浏览器(如 chrome 和 edge)不再支持 xss 保护头部,建议将 csp 作为首选防护方案。
  • 如果目标用户中仍有使用旧版浏览器的场景,可以启用此头。

其他安全头建议(可选):

1. referrer-policy

控制浏览器在跳转时发送的引用信息。

add_header referrer-policy "strict-origin-when-cross-origin" always;

2. permissions-policy(前身为 feature-policy)

限制浏览器功能(如地理位置、摄像头、麦克风等)的访问权限。

add_header permissions-policy "geolocation=(), camera=(), microphone=()" always;

检查安全头的生效情况:

到此这篇关于nginx httpheader增加几个关键的安全选项的文章就介绍到这了,更多相关nginx httpheader安全选项内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com