安全相关的HTTP Response Header 与 Nginx 配置

安全相关的HTTP Response Header

  1. X-Frame-Options
  2. X-Content-Type-Options
  3. X-XSS-Protection

X-Frame-Options

X-Frame-Options响应头,可以阻止站点内的页面被其他页面嵌入从而防止点击劫持。

漏洞分析

点击劫持是一种视觉上的欺骗手段,攻击者使用一个透明的、不可见的iframe,覆盖在一个当前网页上。然后诱使用户在该网页上进行点击操作,此时用户在不知情的情况下点击了透明的iframe页面。如果用户恰好点击在iframe页面的一些功能性按钮上(如点赞按钮),就能达成攻击者想要的目的(获取点赞)。

解决方案与配置

使用 X-Frame-Options 有三个可选的值:

  • DENY:浏览器拒绝当前页面加载任何Frame页面
  • SAMEORIGIN:frame页面的地址只能为同源域名下的页面
  • ALLOW-FROM:origin为允许frame加载的页面地址

一般来说,允许同源域名下加载的配置是较为合适的选择。

Nginx配置

add_header X-Frame-Options SAMEORIGIN;

X-Content-Type-Options

X-Content-Type-Options响应头主要用来防止在IE9、chrome和safari中的MIME类型混淆攻击。

漏洞分析

互联网上的资源有各种类型,通常浏览器会根据响应头的Content-Type字段来分辨它们的类型。例如:”text/html”代表html文档,”image/png”是PNG图片。然而,有些资源的Content-Type是错的或者未定义。这时,某些浏览器会启用MIME-sniffing(嗅探)来猜测该资源的类型,解析内容并执行。这会让某些攻击者利用浏览器嗅探内容机制的漏洞,把有危害的文件伪装成能通过浏览器嗅探的类型,进行攻击。

解决方案与配置

通过设置 X-Content-Type-Options:nosniff 。如果content-type和期望的类型匹配,则不需要嗅探,只能从外部加载确定类型的资源。如果不匹配,那么返回的资源会被浏览器阻止加载。

Nginx配置

add_header X-Frame-Options SAMEORIGIN;

X-XSS-Protection

X-XSS-Protection响应头设置了浏览器的XSS防护机制,明确地告诉浏览器XSS filter/auditor该如何工作。

漏洞分析

XSS跨站脚本攻击比较常见的漏洞,这里的介绍引用作者“那一叶随风”的文章《XSS跨站脚本攻击》,地址为:https://www.cnblogs.com/phpstudy2015-6/p/6767032.html

XSS跨站脚本攻击:恶意攻击者利用网站没有对用户提交数据进行转义处理或者过滤不足的缺点,进而添加一些代码,嵌入到web页面中去。使别的用户访问都会执行相应的嵌入代码。从而盗取用户资料、利用用户身份进行某种动作或者对访问者进行病毒侵害的一种攻击方式。

更加详细的关于XSS的介绍,请看上述文章。

解决方案与配置

XSS防护机制的目的都很简单,如果浏览器检测到了含有恶意代码的输入被呈现在HTML文档中,那么这段呈现的恶意代码要么被删除,要么被转义,恶意代码不会被正常的渲染出来,当然了,浏览器是否要拦截这段恶意代码取决于浏览器的XSS防护设置。

X-XSS-Protection 的字段有三个可选配置值:

  • 0: 表示关闭浏览器的XSS防护机制
  • 1:删除检测到的恶意代码, 如果响应报文中没有看到X-XSS-Protection 字段,那么浏览器就认为X-XSS-Protection配置为1,这是浏览器的默认设置
  • 1; mode=block:如果检测到恶意代码,则不渲染恶意代码

我认为,设置为XSS-Protection: 1; mode=block是比较合适的。

设置为0,那么防护机制就没有;设置为1,则容易被恶意输入把正常代码或者防御代码给删除掉。

Nginx配置

add_header X-XSS-Protection "1; mode=block"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值