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

 更新时间:2024年12月07日 09:04:03   作者:Eric zhou  
本文给大家介绍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':限制 <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安全选项内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Nginx服务器下防盗链的方法介绍

    Nginx服务器下防盗链的方法介绍

    这篇文章主要介绍了Nginx服务器下防盗链的方法介绍,主要通过修改服务器的配置文件来实现,需要的朋友可以参考下
    2015-07-07
  • Nginx配置 location模块实现路由(反向代理、重定向)功能

    Nginx配置 location模块实现路由(反向代理、重定向)功能

    本文主要介绍了Nginx配置 location模块实现路由(反向代理、重定向)功能,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-04-04
  • Nginx+Tomcat负载均衡集群安装配置案例详解

    Nginx+Tomcat负载均衡集群安装配置案例详解

    Nginx是一款非常优秀的http服务器软件,它能够支持高达50000个并发连接数的相应,Nginx+Tomcat负载均衡集案列是应用于生产环境的一套可靠的Web站点解决方案,对Nginx Tomcat负载均衡集群相关知识感兴趣的朋友一起看看吧
    2021-10-10
  • 配置Nginx服务器展示随机首页与空白图片的方法

    配置Nginx服务器展示随机首页与空白图片的方法

    这篇文章主要介绍了配置Nginx服务器展示随机首页与空白图片的方法,分别用到了ngx_http_random_index_module模块和ngx_http_empty_gif_module模块,需要的朋友可以参考下
    2016-01-01
  • Nginx负载均衡健康检查性能提升

    Nginx负载均衡健康检查性能提升

    这篇文章主要为大家介绍了Nginx负载均衡健康检查性能提升,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-10-10
  • 如何使用k8s部署nginx服务

    如何使用k8s部署nginx服务

    Deployment是用来定义和管理 Pod 的高级控制器,它描述了应用程序的期望状态,例如需要运行的 Pod 数量、使用的镜像版本等信息,本文给大家介绍如何使用k8s部署nginx服务,感兴趣的朋友跟随小编一起看看吧
    2024-06-06
  • nginx日志切割/分割之按天生成及定期删除日志

    nginx日志切割/分割之按天生成及定期删除日志

    这篇文章主要给大家介绍了关于nginx日志切割/分割之按天生成及定期删除日志的相关资料,日志文件大会影响访问的速度和查找难度,文中给出了详细的代码示例,需要的朋友可以参考下
    2023-08-08
  • Nginx结合Openresty通过Lua+Redis实现动态封禁IP

    Nginx结合Openresty通过Lua+Redis实现动态封禁IP

    为了封禁某些爬虫或者恶意用户对服务器的请求,我们需要建立一个动态的 IP 黑名单,本文主要介绍了Nginx结合Openresty通过Lua+Redis实现动态封禁IP,感兴趣的可以了解一下
    2023-11-11
  • Nginx配置多个HTTPS域名的方法

    Nginx配置多个HTTPS域名的方法

    本篇文章主要介绍了Nginx配置多个HTTPS域名的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-07-07
  • 一文了解nginx HTTP安全响应问题

    一文了解nginx HTTP安全响应问题

    一些网站系统会经常遭到各类XSS攻击、点劫持等,从而造成重要信息的泄露以及服务器安全问题,本文就来介绍一下,感兴趣的可以了解一下
    2023-11-11

最新评论