关闭

一些安全相关的HTTP header

时间: 2018-12-18阅读: 937标签: 安全

1.Strict-Transport-Security

HTTP Strict-Transport-Security,简称为HSTS。
作用:允许一个HTTPS网站,要求浏览器总是通过HTTPS访问它。

strict-transport-security: max-age=16070400; includeSubDomains
  • includeSubDomains,可选,用于指定是否作用于子域名
  • 支持HSTS的浏览器遇到这个响应头,会把当前网站加入HSTS列表,然后在max-age指定的秒数内,当前网站所有请求都会被浏览器重定向为https。
  • Chrome内置了一个HSTS列表,默认包含Google、Paypal、Twitter、Linode等服务。输入chrome://net-internals/#hsts,进入HSTS管理界面,可以增加/删除/查询HSTS记录。

2.X-Frame-Options:是否允许一个页面可在<frame>、<iframe>、<object>中展现的标记。

作用:减少/避免点击劫持 (clickjacking) 的攻击。
使用方式如下:

x-frame-options: SAMEORIGIN

响应头支持三种配置:

  • DENY:表示该页面不允许在 frame 中展示,即便是在相同域名的页面中嵌套也不允许。
  • SAMEORIGIN:表示该页面可以在相同域名页面的 frame 中展示。
  • ALLOW-FROM uri:表示该页面可以在指定来源的 frame 中展示。

3.X-XSS-Protection

作用:防范XSS攻击。
PS:这个是旧属性,基本上可以被CSP取代,但是仍可以为还没有支持CSP的浏览器提供一层保护。
主流浏览器默认都开启了XSS保护。
使用方式如下:

X-XSS-Protection: 1; mode=block; report=/_/http-sec-report

支持配置:

  • 0:禁止XSS保护
  • 1:启用XSS保护:启用XSS保护,浏览器检测到XSS攻击会自动过滤非安全部分内容
  • 1;mode=block:启用XSS保护,并在检测到XSS攻击的时候停止渲染页面
  • 1;report=:启用XSS保护,检测到XSS攻击的时候,浏览器会自动过滤非安全内容,同时上报到指定URI。

4.X-Content-Type-Options

作用:禁用浏览器的Content-Type猜测行为。

背景:
浏览器通常会根据响应头Content-Type字段来分辨资源类型。有些资源的Content-Type是错的或者未定义。这时,浏览器会启用MIME-sniffing来猜测该资源的类型,解析内容并执行。
利用这个特性,攻击者可以让原本应该解析为图片的请求被解析为JavaScript

使用方法:

X-Content-Type-Options: nosniff

5.X-Content-Security-Policy(旧版)/Content-Security-Policy

作用:用于定义页面可以加载哪些资源,减少和上报XSS的攻击,防止数据包嗅探攻击。

响应头:

  • Content-Security-Policy
  • X-Content-Security-Policy
  • X-Webkit-CSP

使用方法:

Content-Security-Policy: default-src 'self'
  • 一个策略由一系列策略指令组成,每个策略指令都描述了一个针对某个特定类型资源以及生效范围的策略。
  • default-src是CSP指令,多个指令之间使用英文分号分割;
  • self是指令值,多个指令值用英文空格分割。
  • 支持的CSP指令

元素也可以用于配置CSP:

<meta http-equiv="Content-Security-Policy" content="default-src 'self'; img-src https://*; child-src 'none';">
指令指令值示例说明
default-src'self' cnd.a.com定义针对所有类型资源的默认加载策略,某类型资源如果没有单独定义策略,就使用默认的。
script-src'self' js.a.com定义针对JavaScript的加载策略
style-src'self' css.a.com定义针对样式的加载策略
img-src'self' img.a.com定义针对图片的加载策略
connect-src'self'针对Ajax、WebSocket等请求的加载策略。不允许的情况下,浏览器会模拟一个状态为400的响应。
font-srcfont.a.com针对WebFont的加载策略
object-src'self'针对<object>、<embed>、<applet>等标签引入的flash等插件的加载策略
media-srcmedia.a.com针对<audio>、<video>等标签引入的html多媒体的加载策略。
frame-src'self'针对frame的加载策略
sanboxallow-forms对请求的资源启用sandbox(类似于iframe的sandbox属性)
report-uri/report-uri告诉浏览器如果请求不被策略允许,往哪个地址提交日志信息。如果想让浏览器只汇报日志,不阻止任何内容,可以改用 Content-Security-Policy-Report-Only 头。

指令值可以由下面内容组成:

指令值指令值示例说明
img-src允许任何内容
'none'img-src 'none'不允许任何内容
'self'img-src 'self'允许来自相同源的内容(相同的协议、域名和端口)。
data:img-src data:允许data:协议(如base64编码的图片)
www.a.comimg-src img.a.com允许加载指定域名的资源
.a.comimg-src .a.com允许加载a.com任何子域的资源
https://img.comimg-src https://img.com允许加载img.com的https资源
https:img-src https:允许加载https资源
'unsafe-inline'script-src 'unsafe-inline'允许加载inline资源(例如常见的style属性,onclick, inline js, inline css)。
'unsafe-eval'script-src 'unsafe-eval'允许加载动态js代码,例如eval()。

违例报告

  • document-uri:发生违规的文档的URI。
  • referrer:违规发生处的文档引用地址
  • blocked-uri:被CSP阻止的资源URI。如果被阻止的URI来自不同的源而非文档URI,则被阻止的资源URI会被删减,仅保留协议、主机和端口号。
  • violated-directive:违反的策略名称
  • original-policy:在Content-Security-Policy HTTP header中指明的原始策略。

  • HttpOnly:防止使用javascript(如document.cookie)去存取cookie
  • Secure:强制cookie只能在HTTPS环境下传递

7.Referrer-Policy

作用:增加隐私保护。

可配置值:

  • no-referrer: 不允许被记录
  • origin:只记录origin,即域名
  • strict-origin:只有在HTTPS->HTTPS之间才会被记录下来
  • strict-origin-when-cross-origin:同源请求会发送完整的URL;HTTPS->HTTPS,发送源;降级下不发送此首部。
  • no-referrer-when-downgrade(default):同strict-origin
  • origin-when-cross-origin:对于同源的请求,会发送完整的URL作为引用地址,但是对于非同源请求仅发送文件的源。
  • same-origin:对于同源请求会发送完整URL,非同源请求则不发送referer
  • unsafe-url:无论是同源请求还是非同源请求,都发送完整的URL(移除参数信息之后)作为引用地址。(可能会泄漏敏感信息)

8.Public-Key-Pins(HPKP)

作用:防止中间人攻击。是HTTPS网站防止攻击者利用CA错误签发的证书进行中间人攻击的一种安全机制,用于预防CA遭入侵或者其他会造成CA签发未授权证书的情况。
服务器通过Public-Key-Pins(或Public-Key-Pins-Report-Onky用于监测)header向浏览器传递HTTP公钥固定信息。

基本格式:

Public-Key-Pins: pin-sha256="base64=="; max-age=expireTime [; includeSubdomains][; report-uri="reportURI"]

字段含义:

  • pin-sha256:即证书指纹,允许出现多次,实际上应用最少指定两个;
  • max-age:过期时间
  • includeSubdomains:是否包含子域
  • report-uri:验证失败时上报的地址

作者:AmyZYX 
出处:http://www.cnblogs.com/amyzhu/ 


站长推荐

1.云服务推荐: 国内主流云服务商,各类云产品的最新活动,优惠券领取。地址:阿里云腾讯云华为云

2.广告联盟: 整理了目前主流的广告联盟平台,如果你有流量,可以作为参考选择适合你的平台点击进入

链接: http://www.fly63.com/article/detial/1635

关闭

第三方 CSS 并不安全

第三方内容在其沙箱区域内具有强大的能力。如果你担心恶意用户诱使你的网站加载第三方资源,可以通过 CSP 用作防护手段,其可以限制加载图片,脚本和样式的来源。

常见Web安全问题攻防解析

XSS (Cross Site Script),跨站脚本攻击,因缩写和 CSS (Cascading Style Sheets) 重叠,所以叫 XSS。XSS 的原理是恶意攻击者往 Web 页面里插入恶意可执行网页脚本代码,当用户浏览该页之时,嵌入其中 Web 里面的脚本代码会被执行

9项你不得不知道的Kubernetes安全最佳实践

由于Kubernetes控制台中的配置错误,特斯拉被一个恶意挖掘加密货币的软件所感染。***者利用了特定Kubernetes控制台没有密码保护的这一漏洞,访问其中一个包含特斯拉大型AWS环境访问凭据的pod。

Web安全测试检查单

Web安全测试检查单。上传功能:绕过文件上传检查功能,上传文件大小和次数限制。注册功能:注册请求是否安全传输,注册时密码复杂度是否后台检验,激活链接测试

信息泄漏时代,如何让自己的密码更安全?

密码的重要性,相信大家都不言而喻。而密码泄漏或信息泄漏,经常是层出不穷地出现,令人防不胜防。所以,一个强大而复杂的密码是保证自己账户安全的第一步。

HTTPS为什么是安全的?

超文本传输协议HTTP被用于在web浏览器和网站服务器之间传递信息,但以明文方式发送内容,被攻击者截取就可以直接读取内容信息,不适合传输敏感信息。为解决这一缺陷,需要使用另一种协议:安全套接字层超文本传输协议HTTPS

WEB应用程序安全检查列表

检查页面隐藏或丢失的内容:检查webserver元数据文件,如:robots.txt, sitemap.xml,.DS_Store, .htaccess,检查搜索功能可能的注入或攻击方式,检查不同agent代理访问网站显示内容的是否一致

前端安全之防范XSS

XSS大部分前端coder都不会陌生,全称:跨站脚本漏洞(Cross Site Scripting,简写作XSS)是Web应用程序在将数据输出或者展示到网页的时候存在问题,导致攻击者可以将对网站的正常功能造成影响甚至窃取或篡改用户个人信息

14个Linux系统安全小妙招

对于互联网IT从业人员来说,越来越多的工作会逐渐转移到Linux系统之上,这一点,无论是开发、运维、测试都应该是深有体会。曾有技术调查网站W3Techs于2018年11月就发布一个调查报告,报告显示Linux在网站服务器的系统中使用率高达37.2%

前端安全之xss攻击

XSS 攻击指通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的代码。危害有什么?跳转到广告页面,页面注入广告等等。导致公司域名被其他平台拉黑,从而使业务受损。

点击更多...

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!