在 Web 服务器做出响应时,为了提高安全性,在 HTTP 响应头中可以使用的各种响应头字段。

X-Frame-Options

该响应头中用于控制是否在浏览器中显示 frame 或 iframe 中指定的页面,主要用来防止 Clickjacking (点击劫持)攻击。

X-Frame-Options: SAMEORIGIN
  • DENY 禁止显示 frame 内的页面(即使是同一网站内的页面)
  • SAMEORIGIN
  • 允许在 frame 内显示来自同一网站的页面,禁止显示来自其他网站的页面
  • ALLOW-FROM origin_uri 允许在 frame 内显示来自指定 uri 的页面(当允许显示来自于指定网站的页面时使用)

X-Content-Type-Options

如果从 script 或 stylesheet 读入的文件的 MIME 类型与指定 MIME 类型不匹配,不允许读取该文件。用于防止 XSS 等跨站脚本攻击。

X-Frame-Options: nosniff

X-XSS-Protection

用于启用浏览器的 XSS 过滤功能,以防止 XSS 跨站脚本攻击。

X-XSS-Protection: 1; mode=block
  • 0 禁用 XSS 过滤功能
  • 1 启用 XSS 过滤功能

Content-Security-Policy

用于控制当外部资源不可信赖时不被读取。用于防止 XSS 跨站脚本攻击或数据注入攻击(但是,如果设定不当,则网站中的部分脚本代码有可能失效)。

之前的字段名为 X-Content-Security-Policy

Content-Security-Policy: default-src 'self'
  • default-src 'self':允许读取来自于同源(域名+主机+端口号)的所有内容
  • default-src 'self'
  • *.example.com:允许读取来自于指定域名及其所有子域名的所有内容

X-Permitted-Cross-Domain-Policies

用于指定当不能将"crossdomain.xml"文件(当需要从别的域名中的某个文件中读取 Flash 内容时用于进行必要设置的策略文件)放置在网站根目录等场合时采取的替代策略。

X-Permitted-Cross-Domain-Policies: master-only
  • master-only 只允许使用主策略文件(/crossdomain.xml)

Strict-Transport-Security

用于通知浏览器只能使用 HTTPS 协议访问网站。用于将 HTTP 网站重定向到 HTTPS 网站。

Strict-Transport-Security: max-age=31536; includeSubDomains
  • max-age 用于修改 STS 的默认有效时间。
  • includeSubDomains 用于指定所有子域名同样使用该策略。

Access-Control-Allow-Origin等CORS相关字段

当使用 XMLHttpRequest 从其他域名中获取资源进行跨域通信时使用。

Access-Control-Allow-Origin: http://www.example.com
Access-Control-Allow-Methods: POST, GET, OPTIONS
Access-Control-Allow-Headers: X-TRICORDER
Access-Control-Max-Age: 1728

上述代码用于设定与"http://www.example.com"进行跨域通信处理,允许使用 POST, GET, OPTIONS 方法,在发送的请求头中添加 X-TRICORDER 字段,通信超时时间为1,728,00秒。

HTTP响应头的设定方法

在 Apache 服务器中指定响应头时,需要在 httpd.conf 文件中将下述模块设定为有效状态。

LoadModule headers_module modules/mod_headers.so

然后使用下述方法设定 HTTP 响应头。

Header set HeaderFieldName "value"
//例如
Header set X-XSS-Protection "1; mode=block”

本文系 OneASP 工程师王开放原创文章。如今,多样化的攻击手段层出不穷,传统安全解决方案越来越难以应对网络安全攻击。OneRASP 实时应用自我保护技术,可以为软件产品提供精准的实时保护,使其免受漏洞所累。想阅读更多技术文章,请访问 OneAPM 官方技术博客

本文转自 OneAPM 官方博客

如何使用 HTTP 响应头字段来提高 Web 安全性?的更多相关文章

  1. 提高安全性而在HTTP响应头中可以使用的各种响应头字段

    本文介绍在Web服务器做出响应时,为了提高安全性而在HTTP响应头中可以使用的各种响应头字段.由于部分浏览器中有可能对某些字段或选项不提供支持,所以在使用这些字段时请先确认客户端环境. X-Frame ...

  2. 前端必备HTTP技能之HTTP请求头响应头中常用字段详解(转)

    作为一名前端开发人员,肯定少不了要和网络打交道,因为要从服务器端拉取数据,从服务端获取数据最常用的方式还是通过HTTP请求.给服务器发请求的时候有请求头,接受服务器响应的时候有响应头,客户端和服务器端 ...

  3. HTTP协议响应头之Transfer-Encoding:分块传输详解

    Http Connection有两种连接方式:短连接和长连接:短连接即一次请求对应一次TCP连接的建立和销毁过程,而长连接是多个请求共用同一个连接这样可以节省大量连接建立时间提高通信效率.目前主流浏览 ...

  4. RFC2616-HTTP1.1-Header Field Definitions(头字段规定部分—译文)

    part of Hypertext Transfer Protocol -- HTTP/1.1 RFC 2616 Fielding, et al. 14 头字段规定 该章节定义了HTTP1.1标准所包 ...

  5. HTTP消息头(HTTP headers)-常用的HTTP请求头与响应头

    HTTP消息头是指,在超文本传输协议( Hypertext Transfer Protocol ,HTTP)的请求和响应消息中,协议头部分的那些组件.HTTP消息头用来准确描述正在获取的资源.服务器或 ...

  6. Http消息头中常用的请求头和响应头

    作为Web开发对常用http的请求头和响应头熟悉了解一下还是很有必要的.比如请求头中Content-type指定了请求的内容,若类型是application/x-www-form-urlencoded ...

  7. HTTP常用标准请求头字段

    常用标准请求头字段 Accept 设置接受的内容类型 Accept: text/plain Accept-Charset 设置接受的字符编码 Accept-Charset: utf-8 Accept- ...

  8. 常见HTTP请求头和响应头

    2. 常用的HTTP请求头 协议头 说明 示例 状态 Accept 可接受的响应内容类型(Content-Types). Accept: text/plain 固定 Accept-Charset 可接 ...

  9. 常用的HTTP响应头

    响应头 说明 示例 状态 Access-Control-Allow-Origin 指定哪些网站可以跨域源资源共享 Access-Control-Allow-Origin: * 临时 Accept-Pa ...

随机推荐

  1. java学习粗略路线

    首先是JAVA基础JAVA SE(用于开发和部署桌面.服务器以及嵌入设备和实时环境中的Java应用程序.) 之后是JAVA EE(java企业级标准开发),先学习Servlet(控制器).JSP(在h ...

  2. [置顶] 第一天初试linux

    1).unix  linix  macos android 的区别 Unix是要收费的,而linix是一种开源免费的unix ,macos 和andorid又是linux的一种,macos闭源,仅仅是 ...

  3. 20160410javaweb之JDBC---DBUtils框架

    DBUtils 1.DbUtils 工具类 2.QueryRunner -- 两行代码搞定增删改查 (1)QueryRunner() --需要控制事务时,使用这组方法 int update(Conne ...

  4. 3.redis.3.2 下载,安装、配置、使用、集群主从创建 - 3

    当然,集群最主要的就是配置文件: 简单配置如下, port 7001 bind 127.0.0.1 databases 16 appendonly yes appendfilename "a ...

  5. ios ReactiveViewModel

    项目中使用 ReactiveCocoa 一般都会嵌入ReactiveViewModel 或者 ReactiveCocoaLayout 联合处理UI.网络.动画.布局.窗口切换等,组合使用时威力惊人. ...

  6. iOS开发——TTS文本发音

    iOS的文本转发音,从iOS7开始,iOS系统自带这个功能.能够实现中文.英文的发音.而且实现的起来非常方便.就像我看到有的博主说的三行代码搞定. (在iOS7之前(目前已不适配了),比如iOS6实现 ...

  7. WebRTC 音视频开发之路

    早在2014年就通过WebRTC实现了PC客户端的实时视频语音,那时P2P连接的建立使用的WebRTC自带的libjingle库,使用peerconnection的API实现的.后来在做远程桌面,文件 ...

  8. 【BZOJ2793】【数学】[Poi2012]Vouchers

    Description 考虑正整数集合,现在有n组人依次来取数,假设第i组来了x人,他们每个取的数一定是x的倍数,并且是还剩下的最小的x个. 正整数中有m个数被标成了幸运数,问有哪些人取到了幸运数. ...

  9. IOS代理

    之前看过一些关于代理的资料,始终感觉还是很模糊,最近抽出一段空闲的时间,将这块内容整理下: 什么是代理,顾名思义就是帮别人做些事情,比如买房子,当我们买房子时,我们一般会找房屋中介,因为他们就是干这件 ...

  10. java中移位运算符:<<、>>和>>>之间的比较

    一.说明 <<:运算符将二进制位进行左移操作 >>:运算符将二进制位进行右移操作 >>>:运算符将用0填空高位 二.举例 /** * *----------c ...