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

相关推荐

  • SpringBoot3整合Swagger3时出现Type javax.servlet.http.HttpServletRequest not present错误

    目录 错误详情 错误原因 解决方法 引入依赖 修改配置信息 创建文件 访问 错误详情 错误原因 SpringBoot3和Swagger3版本不匹配 解决方法 使用springdoc替代springfox,具体步骤如下: 引入依赖 在pom.xml文件中添加如下依赖: org.springdoc springdoc-openapi-starter-webmvc…

    2025 年 1 月 19 日
    68000
  • 深入解析 Java 多线程编程中的 Thread 类核心功能

    Java 平台的多线程编程能力主要依赖于 Thread 这个基础类。我们将全面剖析该类的重要特性与实用方法,并通过具体案例演示其应用场景。 一、线程的初始化与基础控制 在 Java 中,开发者可以通过以下两种主要途径创建新线程:1. #### 扩展 Thread 基类 class CustomThread extends Thread { public vo…

    2025 年 5 月 13 日
    36500
  • 交易系统:订单模型设计详解

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

    2024 年 12 月 31 日
    57200
  • Java MDC技术详解:实现高效日志链路追踪的实战指南

    一、MDC技术概述 MDC(映射诊断上下文)是SLF4J日志框架提供的一项线程级数据存储功能。作为线程安全的容器,它能够在特定线程范围内保存多组键值数据,并自动将这些信息嵌入日志记录中,从而实现日志信息的上下文关联。 二、MDC的核心价值 功能 描述 应用实例 请求追踪 完整记录请求处理路径 微服务调用链路分析 参数传递 跨方法共享通用数据 机构编码、用户标…

    未分类 2025 年 5 月 19 日
    47500
  • manim边做边学–动画更新

    今天介绍Manim中用于动画更新的3个类 ,分别是: UpdateFromFunc:根据自定义的函数来动态更新 Mobject 的属性 UpdateFromAlphaFunc:根据动画的进度来平滑地改变 Mobject 的属性 MaintainPositionRelativeTo:保持多个 Mobject 之间的相对位置关系 这3个类 分别从自定义更新、基于…

    2025 年 1 月 16 日
    52300

发表回复

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

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

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

关注微信