安全渗透测评之nginx配置解决方案

一、背景

  1. 电脑普及
    随着计算机技术的普及,电脑已经走进平常百姓家,高手就会越来越多,我们自己的网站或者其他系统,在没有安全加固的情况下在网络上跑,基本等同于裸奔。
  2. 工作需要
    基于第一方面,我们现在很多系统在上线前都会找专业的安全公司,来对我们的系统安全性进行测试,以验证我们系统的安全性,本文就是这个问题的由来。

二、基本安全配置

2.1 host头攻击漏洞

该漏洞的防御主要是限制IP地址,在nginx中配置如下:

	if ($http_Host !~* ^192.168.55.66:8888$)
    {
        return 403;
    }
2.2、 点击劫持漏洞(X-Frame-Options)
2.2.1 基本原理

点击劫持(ClickJacking)是一种视觉上的欺骗手段。攻击者利用透明的、不可见的iframe,覆盖在一个网页上,此时用户在不知情的情况下点击了这个透明的iframe页面。通过调整iframe页面的css样式,可以使用户恰好点击在iframe页面的一些功能性按钮上。

HTTP 响应头信息中的X-Frame-Options,可以告诉浏览器是否应该加载一个 iframe 中的页面。系统可以通过设置 X-Frame-Options 阻止站点内的页面被其他页面嵌入从而防止点击劫持。

X-Frame-Options的默认值有以下三种:
1、DENY:不能被嵌入到任何iframe或者frame中。
2、SAMEORIGIN:页面只能被本站页面嵌入到iframe或者frame中。
3、ALLOW-FROM uri:只能被嵌入到指定域名的框架中。

2.2.2 nginx配置
add_header X-Frame-Options SAMEORIGIN;
2.3 X-Download-Options响应头缺失
2.3.1 基本原理

web浏览器在响应头中缺少 X-Download-Options,这将导致浏览器提供的安全特性失效,更容易遭受 Web 前端黑客攻击的影响。

2.3.2 nginx配置
add_header X-Download-Options 'noopen';
2.4 X-Permitted-Cross-Domain-Policies响应头缺失
2.4.1 基本原理

系统响应头缺少X-Permitted-Cross-Domain-Policies,将会导致浏览器的安全特性失效,其中X-Permitted-Cross-Domain-Policies可选的值有: none、master-only、 by-content-type 、by-ftp-filename 和all 。

2.4.2 nginx配置
add_header X-Permitted-Cross-Domain-Policies 'none';
2.5 Referrer-Policy响应头缺失
2.5.1 基本原理

当我们点击一个连接时,会产生一个http请求去获取新页面的内容,在该请求的header中会有一个referrer用以说明该请求是从哪个页面跳转过来的。如果缺少该字段会导致浏览器的安全特性消失,使我们的系统更容易受到攻击。

Referrer-Policy的默认选项有:no-referrer、no-referrer-when-downgrade origin、 origin-when-cross-origin、 same-origin 、strict-origin 、strict-origin-when-cross-origin和unsafe-url ,我们可以根据需要进行设置,像我们的CSDN网站就默认设置的unsafe-url

2.5.2 nginx配置
add_header Referrer-Policy "no-referrer";
2.6 Strict-Transport-Security响应头缺失
2.6.1 基本原理

系统缺少 Strict-Transport-Security,这将导致浏览器提供的安全特性失效,当我们系统请求头中包含 Strict-Transport-Security 头时,浏览器将持续使用 HTTPS 来访问 Web 站点,可以用来对抗协议降级攻击和 Cookie 劫持攻击。

2.6.2 nginx配置
add_header Strict-Transport-Security 'max-age=15552000';
2.7 Content-Security-Policy响应头缺失
2.7.1 基本原理

HTTP 响应头Content-Security-Policy允许站点管理者控制用户代理能够为指定的页面加载哪些资源。除了少数例外情况,设置的政策主要涉及指定服务器的源和脚本结束点。

Content-Security-Policy响应头的缺失使得目标URL更易遭受跨站脚本攻击。

2.7.2 nginx配置
add_header Content-Security-Policy "script-src * 'unsafe-inline' 'unsafe-eval'";
2.8 X-XSS-Protection响应头缺失
2.8.1 基本原理

HTTP X-XSS-Protection 响应头是 Internet Explorer,Chrome 和 Safari 的一个特性,当检测到跨站脚本攻击 (XSS)时,浏览器将停止加载页面。

X-XSS-Protection响应头的缺失使得目标URL更易遭受跨站脚本攻击。

2.8.2 nginx配置
add_header X-XSS-Protection '1;mode=block';
2.9 X-Content-Type-Options响应头缺失
2.9.1 基本原理

服务器用来提示客户端一定要遵循在 Content-Type 首部中对 MIME 类型 的设定,而不能对其进行修改。这就禁用了客户端的 MIME 类型嗅探行为,换句话说,也就是意味着网站管理员确定自己的设置没有问题。
X-Content-Type-Options响应头的缺失使得目标URL更易遭受跨站脚本攻击。

2.9.2 nginx配置
add_header X-Content-Type-Options 'nosniff';
2.10 会话cookie中缺少HttpOnly属性
2.10.1 基本原理

会话cookie中缺少HttpOnly属性会导致攻击者可以通过程序(JS脚本、Applet等)获取到用户的cookie信息,造成用户cookie信息泄露,增加攻击者的跨站脚本攻击威胁。

2.10.2 nginx配置
add_header Set-Cookie "Path=/; HttpOnly; Secure";

三、结语

道阻且长,行则将至,行而不辍,未来可期,加油。

如果文章解决了你的问题,对你的进步有那么一点帮助,那么就给点个赞支持一下,如果觉得文章非常对你的胃口,那么欢迎你关注我,这里有资源,有内推,有和你志同道合的朋友,咱们一起打怪升级。

  • 11
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
要解决nginx配置无法与网站建立安全连接的问题,可以采取以下几个步骤: 1. 检查SSL证书:确保所使用的SSL证书是有效的,并且正确地安装在服务器上。可以使用SSL证书验证工具来检查证书的有效性。 2. 检查配置文件:确保nginx配置文件中的SSL相关项正确配置。例如,检查是否正确指定了SSL证书的路径和私钥的路径,并且确保SSL监听端口正确设置。 3. 检查防火墙设置:检查服务器上的防火墙设置,确保允许通过SSL监听端口进行访问。如果防火墙设置不正确,可能会导致无法建立安全连接。 4. 更新openssl库:如果nginx使用的openssl库版本过旧,可能会导致无法建立安全连接。可以尝试更新openssl库到最新版本,然后重新编译nginx。 5. 检查域名解析:如果使用了自定义域名,确保域名解析正确,指向了正确的服务器IP地址。可以通过ping命令或域名解析工具来验证域名解析是否正确。 6. 检查其他软件配置:如果服务器上还安装了其他软件,如反向代理服务器,确保它们的配置nginx的SSL配置相兼容。有时候,其他软件的配置可能会导致安全连接无法建立。 7. 查看日志文件:查看nginx的错误日志文件,通常位于/var/log/nginx/error.log,查找有关SSL连接错误的相关信息,以便进一步排查问题。 如果以上步骤都正确配置,并且问题仍然存在,可以尝试在论坛或在线技术社区上寻求帮助,以获取更详细的指导。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序猿每日分享

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值