巧用HTTP 响应头部提高 Web 安全性

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

1、X-Frame-Options该响应头中用于控制是否在浏览器中显示 frame 或 iframe 中指定的页面,主要用来防止 Clickjacking (点击劫持)攻击。X-Frame-Options: SAMEORIGIN
DENY : 禁止显示 frame 内的页面(即使是同一网站内的页面)SAMEORIGIN: 允许在 frame 内显示来自同一网站的页面,禁止显示来自其他网站的页面ALLOW-FROM origin_uri:  允许在 frame 内显示来自指定 uri 的页面(当允许显示来自于指定网站的页面时使用)2、X-Content-Type-Options如果从 script 或 stylesheet 读入的文件的 MIME 类型与指定 MIME 类型不匹配,不允许读取该文件。用于防止 XSS 等跨站脚本攻击。X-Frame-Options: nosniff
3、X-XSS-Protection用于启用浏览器的 XSS 过滤功能,以防止 XSS 跨站脚本攻击。X-XSS-Protection: 1; mode=block
0 : 禁用 XSS 过滤功能1 : 启用 XSS 过滤功能4、Content-Security-Policy用于控制当外部资源不可信赖时不被读取。用于防止 XSS 跨站脚本攻击或数据注入攻击(但是,如果设定不当,则网站中的部分脚本代码有可能失效)。之前的字段名为 X-Content-Security-PolicyContent-Security-Policy: default-src 'self'
default-src ‘self’:允许读取来自于同源(域名+主机+端口号)的所有内容default-src ‘self’ *.example.com :允许读取来自于指定域名及其所有子域名的所有内容5、X-Permitted-Cross-Domain-Policies用于指定当不能将”crossdomain.xml”文件(当需要从别的域名中的某个文件中读取 Flash 内容时用于进行必要设置的策略文件)放置在网站根目录等场合时采取的替代策略。X-Permitted-Cross-Domain-Policies: master-only
master-only 只允许使用主策略文件(/crossdomain.xml)6、Strict-Transport-Security用于通知浏览器只能使用 HTTPS 协议访问网站。用于将 HTTP 网站重定向到 HTTPS 网站。Strict-Transport-Security: max-age=31536; includeSubDomains
max-age : 用于修改 STS 的默认有效时间。includeSubDomains : 用于指定所有子域名同样使用该策略。7、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秒。8、HTTP响应头的设定方法在 Apache 服务器中指定响应头时,需要在 httpd.conf 文件中将下述模块设定为有效状态。LoadModule headers_module modules/mod_headers.so
然后使用下述方法设定 HTTP 响应头。Header set HeaderFieldName "value"
//例如
Header set X-XSS-Protection "1; mode=block”

本文转自silence博客51CTO博客,原文链接http://blog.51cto.com/silencezone/1873403如需转载请自行联系原作者

a120518129
相关实践学习
基于函数计算快速搭建Hexo博客系统
本场景介绍如何使用阿里云函数计算服务命令行工具快速搭建一个Hexo博客。
相关文章
|
14天前
Servlet 教程 之 Servlet 服务器 HTTP 响应 2
Servlet教程讲解了如何通过HttpServletResponse设置HTTP响应,包括编码URL、添加cookie、设置报头、控制缓冲区、发送错误或重定向响应。方法如encodeURL、addCookie、sendError、sendRedirect等,涉及状态码、报头、字符编码和内容长度的管理。
19 2
|
4月前
|
存储 缓存 API
HTTP 请求的响应头部字段 Cache-Control 的值为 no-store 是什么意思
HTTP 请求的响应头部字段 Cache-Control 的值为 no-store 是什么意思
70 0
|
6月前
|
网络协议
深入理解HTTP的基础知识:请求-响应过程解析
在当今数字化的世界中,理解HTTP协议的基础知识变得至关重要。本文将带您深入探索HTTP的核心概念和请求-响应的过程。HTTP是一种用于在计算机之间传输超文本数据的协议,它不仅定义了数据交换的规则和格式,还为不同的应用程序提供了通信和交换信息的能力。通过深入了解HTTP的请求-响应过程,我们将更好地理解网络通信的基本原理,为构建和优化网络应用打下坚实的基础。
211 1
|
14天前
|
XML Java 数据格式
Servlet 教程 之 Servlet 服务器 HTTP 响应 3
`Servlet`教程示例展示了如何创建一个HTTP响应,使用`@WebServlet("/Refresh")`的`Refresh`类继承`HttpServlet`。在`doGet`方法中,设置了`Refresh`头以每5秒自动刷新,并用`setContentType("text/html;charset=UTF-8")`设定内容类型。还使用`Calendar`和`SimpleDateFormat`获取并格式化当前时间显示。相应的`web.xml`配置指定了Servlet路径。当访问此Servlet时,页面将每5秒更新一次显示的系统时间。
19 4
|
5天前
|
缓存 负载均衡 网络协议
【亮剑】一次完整的 HTTP 请求过程,包括 DNS 解析、TCP 握手、HTTP 请求和响应等环节
【4月更文挑战第30天】本文介绍了HTTP请求的重要性和详细过程。首先,DNS解析将域名转换为IP地址,通过递归和迭代查询找到目标服务器。接着,TCP三次握手建立连接。然后,客户端发送HTTP请求,服务器处理请求并返回响应。最后,理解这个过程有助于优化网站性能,如使用DNS缓存、HTTP/2、Keep-Alive、CDN和负载均衡等实践建议。
|
15天前
|
存储 缓存
Servlet 教程 之 Servlet 服务器 HTTP 响应 1
Servlet服务器的HTTP响应包括状态行(如HTTP/1.1 200 OK)、响应头部(如Content-Type, Cache-Control)和HTML文档。关键头部有:Allow指示支持的请求方法;Cache-Control定义缓存策略;Content-Type指定MIME类型;Expires和Last-Modified管理缓存;Location用于重定向;Set-Cookie用于设置cookie。
23 8
|
26天前
|
前端开发 应用服务中间件 nginx
使用nginx-http-concat资源请求合并功能 优化网站响应
使用nginx-http-concat资源请求合并功能 优化网站响应
12 0
|
2月前
|
网络协议 网络安全 API
Qt 网络编程之美:探索 URL、HTTP、服务发现与请求响应
Qt 网络编程之美:探索 URL、HTTP、服务发现与请求响应
50 1
|
3月前
|
XML JSON 中间件
|
3月前
|
Java
【JavaEE初阶】 HTTP响应报文
【JavaEE初阶】 HTTP响应报文