前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >HTTP响应头中可以使用的各种响应头字段

HTTP响应头中可以使用的各种响应头字段

作者头像
华创信息技术
发布2022-05-28 10:18:12
1.9K0
发布2022-05-28 10:18:12
举报
文章被收录于专栏:华创信息技术华创信息技术

文章时间:2021年5月22日 01:46:08 解决问题:暂时不解决问题,整理一下这些头,具体的安全修复,建议站内搜索具体的头信息,找相对应的具体解决方案。

大佬教程:https://blog.csdn.net/flang6157/article/details/103287119

建议直接复制你自己需要的头参数,用ctrl+f进行搜索查询

X-Frame-Options

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

DENY:不允许被任何页面嵌入,浏览器拒绝当前页面加载任何Frame页面; SAMEORIGIN:不允许被本域以外的页面嵌入,只能加载入同源域名下的页面; ALLOW-FROM uri:不允许被指定的域名以外的页面嵌入,只能被嵌入到指定域名的框架中(Chrome现阶段不支持);

代码语言:javascript
复制
X-Frame-Options 'SAMEORIGIN'

X-Content-Type-Options

如果从script或stylesheet读入的文件的MIME类型与指定MIME类型不匹配,不允许读取该文件。用于防止XSS等跨站脚本攻击。 互联网上的资源有各种类型,通常浏览器会根据响应头的Content-Type字段来分辨它们的类型。例如:"text/html"代表html文档,"image/png"是PNG图片,"text/css"是CSS样式文档。然而,有些资源的Content-Type是错的或者未定义。这时,某些浏览器会启用MIME-sniffing来猜测该资源的类型,解析内容并执行。

例如,我们即使给一个html文档指定Content-Type为"text/plain",在IE8-中这个文档依然会被当做html来解析。利用浏览器的这个特性,攻击者甚至可以让原本应该解析为图片的请求被解析为JavaScript。通过下面这个响应头可以禁用浏览器的类型猜测行为:

代码语言:javascript
复制
X-Content-Type-Options: nosniff

X-XSS-Protection

这个响应头是用来防范XSS的,现在主流浏览器都支持,并且默认都开启了XSS保护,用这个header可以关闭它。它有几种配置:

代码语言:javascript
复制
0:禁用XSS保护;
1:启用XSS保护;
1; mode=block:启用XSS保护,并在检查到XSS攻击时,停止渲染页面(例如IE8中,检查到攻击时,整个页面会被一个#替换);

X-Robots-Tag

对于指定的网址,X-Robots-Tag 可以用作 HTTP 标头响应中的一个元素。任何指令只要能够在漫游器元标记中使用,都可以指定为 X-Robots-Tag

代码语言:javascript
复制
X-Robots-Tag 'none';

Content-Security-Policy

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

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

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

X-Permitted-Cross-Domain-Policies

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

代码语言:javascript
复制
X-Permitted-Cross-Domain-Policies: master-only
  • master-only 只允许使用主策略文件(/crossdomain.xml)

Strict-Transport-Security

用于通知浏览器只能使用HTTPS协议访问网站。用于将HTTP网站重定向到HTTPS网站。 通常简称为HSTS,是一个安全功能,它告诉浏览器只能通过HTTPS访问当前资源,而不是HTTP。当设置一个值(秒数)后,表示在浏览器收到这个请求后的多少秒内,凡是访问这个域名下的请求都使用HTTPS请求。

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

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

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

代码语言:javascript
复制
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: 1728000

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

X-Download-Options

用于放置直接打开用户下载文件。

代码语言:javascript
复制
X-Download-Options: noopen
  • noopen 用于指定IE 8以上版本的用户不打开文件而直接保存文件。在下载对话框中不显示“打开”选项。

X-Permitted-Cross-Domain-Policies

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

代码语言:javascript
复制
X-Permitted-Cross-Domain-Policies 'none';

Set-Cookie

用于设置Cookie。

代码语言:javascript
复制
Set-Cookie: name=value; secure; HttpOnly
  • secure 只在进行HTTP通信时发送Cookie。
  • HttpOnly 指定不能从JavaScript脚本代码访问Cookie值。
  • 虽然path属性用于指定Cooki发送路径,但是不能被作为一种安全手段。
  • domain属性具有后方一致特性,出于安全考虑最好不要使用该属性,除非明确指定向多个域发送Cookie。

Referrer-Policy

Referrer Policy即引用策略,就是从一个页面发出请求时,是否在请求头部定义 Referrer 的设置。很多网站的防盗链机制都是用头部定义 Referrer 来判断是否是盗链。

代码语言:javascript
复制
Referrer-Policy "no-referrer";

Cache-Control

指定浏览器的缓存方式,通过逗号分隔。

代码语言:javascript
复制
Cache-Control: no-cache, no-store, must-revalidate
  • no-cache 指定服务器端不缓存数据。
  • no-store 指定不能在本地缓存中保存数据。
  • must-revalidate 指定服务器端可以缓存数据,但是必须对数据进行确认。

pragma

用于与HTTP/1.0进行向后兼容的响应头字段,原本只被使用在客户端请求头中。与“Cache-Control: no-cache”结合使用。

代码语言:javascript
复制
pragma: no-cache
  • no-cache 客户端要求所有中间服务器不能缓存数据。

expires

指定数据的有效时间。不希望缓存数据时可以将该字段值与Date字段值指定为相同值或者将该字段值指定为“-1”。

代码语言:javascript
复制
expires: -1

content-type

指定实体内对象的媒体类型(MediaType)。在charset关键字中指定文字编码格式。

代码语言:javascript
复制
content-type: text/html;charset=utf-8

Nginx批量加配置

代码语言:javascript
复制
add_header Strict-Transport-Security 'max-age=15552000';
add_header X-Content-Type-Options 'nosniff';
add_header X-Robots-Tag 'none';
add_header X-Frame-Options 'SAMEORIGIN';
add_header X-Download-Options 'noopen';
add_header X-Permitted-Cross-Domain-Policies 'none';
add_header X-XSS-Protection '1;mode=block';
add_header Referrer-Policy "no-referrer";
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-05-22 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • X-Frame-Options
  • X-Content-Type-Options
  • X-XSS-Protection
  • X-Robots-Tag
  • Content-Security-Policy
  • X-Permitted-Cross-Domain-Policies
  • Strict-Transport-Security
  • Access-Control-Allow-Origin等CORS相关字段
  • X-Download-Options
  • X-Permitted-Cross-Domain-Policies
  • Set-Cookie
  • Referrer-Policy
  • Cache-Control
  • pragma
  • expires
  • content-type
  • Nginx批量加配置
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档