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

针对像德勤这样的专业渗透测试(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;


检查安全头的生效情况:

1. **工具推荐** :使用以下工具验证头部配置: 
   * [Security Headers]()
   * [Mozilla Observatory]()
2. 使用 `curl` 查看响应头:

curl -I https://your-domain.com

文章整理自互联网,只做测试使用。发布者:Lomu,转转请注明出处:https://www.it1024doc.com/4908.html

(0)
LomuLomu
上一篇 2024 年 12 月 30 日 上午10:22
下一篇 2024 年 12 月 30 日 上午11:23

相关推荐

  • 交易系统:订单模型设计详解

    大家好,我是汤师爷~ 订单模型作为整个交易系统的核心,支撑着所有交易环节。 订单域核心概念模型 如图所示,为订单核心概念模型。 1、订单 在实际交易业务处理中,订单会根据不同的业务规则(如店铺、收货地址、配送方式等)拆分成多个子订单,形成一个父订单对应多个子订单的结构。这种拆分机制便于后续的订单履约和商家结算。订单包含以下核心字段: 租户ID:标识订单所属的…

    2024 年 12 月 31 日
    61000
  • 深入解析ThreadLocal机制及其在Java多线程环境中的上下文管理实践

    目录导航第一部分:ThreadLocal核心概念解析(1)ThreadLocal工作机制剖析(2)弱引用key在GC后的状态探讨(3)内存泄漏隐患与官方解决方案(4)关键源代码解读set()方法实现原理get()方法执行流程remove()方法运作机制(5)实际应用示例第二部分:构建基于ThreadLocal的上下文控制器(1)ContextManager类…

    未分类 2025 年 5 月 13 日
    33300
  • JAVA 图形界面编程 AWT篇(1)

    前言 为了应对JAVA课设,小编走上了java的图形界面编程的道路,通过博客分享自己的学习历程,并进行笔记的记录。 AWT(Abstract Window Toolkit)介绍 AWT(抽象窗口工具包)是 Java 最早的图形用户界面(GUI)框架之一,主要用于构建桌面应用程序的图形界面。最初在 JDK 1.0 版本中作为 Java GUI 的核心库引入,旨…

    未分类 2024 年 12 月 30 日
    54000
  • 【2024最新版】Java JDK安装配置全攻略:图文详解

    目录 1. 引言 2. 准备工作 2.1 确定操作系统 2.2 检查系统要求 2.3 下载JDK安装包 3. 安装步骤(以Windows系统为例) 4. 配置环境变量 4.1 jdk配置验证 4.2 配置JAVA_HOME环境变量 4.3 配置Path环境变量 4.4 验证jdk是否配置成功 5. 结语 1. 引言 随着技术的不断发展和更新,Java作为世界…

    2024 年 12 月 28 日
    56400
  • 新版 Cursor 把其他 AI 编程工具按在地上摩擦了!

    大家好,我是汤师爷~ AI编程助手Cursor背后的Anysphere公司刚刚完成了1亿美元的B轮融资,估值直接飙升至26亿美元。 四个月前,这家公司刚拿下6000万美元,估值还只有4亿美元。如今,增长6.5倍,这速度,简直让人怀疑开挂了。 Anysphere不仅融资拿到手软,收入增长更是逆天。 公司从4月的年收入400万美元,短短六个月后,10月的月收入竟…

    2025 年 1 月 16 日
    58400

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信