找回密码
 立即注册
首页 业界区 业界 Nginx HttpHeader增加几个关键的安全选项

Nginx HttpHeader增加几个关键的安全选项

拓拔梨婷 2025-6-6 14:05:43
针对像德勤这样的专业渗透测试(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':限制  标签的 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;检查安全头的生效情况:


    • 工具推荐:使用以下工具验证头部配置:

      • Security Headers
      • Mozilla Observatory

    • 使用 curl 查看响应头:curl -I https://your-domain.com


来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

相关推荐

您需要登录后才可以回帖 登录 | 立即注册