美文网首页APM应用性能管理程序员iOS 开发
如何使用 HTTP 响应头字段来提高 Web 安全性?

如何使用 HTTP 响应头字段来提高 Web 安全性?

作者: OneAPM | 来源:发表于2016-01-29 13:50 被阅读297次

在 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 安全性?

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

  • 使用这些 HTTP 头保护 Web 应用

    摘要: 安全是个大学问。 原文:Web 应用安全性: 使用这些 HTTP 头保护 Web 应用 作者:前端小智 F...

  • HTTP Header简介

    HTTP Header 协议头的字段(Header),请求(request)或响应(response)。协议头的字...

  • 浏览器缓存

    强缓存 当服务器返回 HTTP 响应头给浏览器时,浏览器是通过响应头中的 Cache-Control 字段来设置是...

  • 前端http请求细节——Cache-Control(缓存机制)

    Cache-Control 通用消息头字段,被用于在 http 请求和响应中,通过指定指令来实现缓存机制。缓存指令...

  • HTTP入门

    目录 HTTP是什么HTTP请求HTTP响应如何用 Chrome 查看请求如何用 Chrome 查看响应如何使用 ...

  • Cache-Control

    Cache-Control 通用消息头字段,被用于在http请求和响应中,通过指定指令来实现缓存机制。缓存指令是单...

  • http.ResponseWriter

    HTTP报文响应结构和请求报文结构类似,也分为三部分分别是状态行、响应头(首部字段)、响应体 例如: 响应报文描述...

  • java学习之路-HttpServletResquest与Htt

    HTTP协议一、HttpServletResponse响应行响应头//不使用缓存response.setHeade...

  • HTTP头字段

    摘自(维基百科) HTTP头字段,指的是在HTTP的请求和回复消息中,协议头部分的那些组件。它们定义了某个HTTP...

网友评论

    本文标题:如何使用 HTTP 响应头字段来提高 Web 安全性?

    本文链接:https://www.haomeiwen.com/subject/wrpjkttx.html