HTTP_header安全选项(浅谈)

2020-11-13 11:08:32 浏览数 (1)

HTTP报文头—安全问题

Mirror王宇阳 2019-10-01 参考:MDN技术文档;《http头安全相关的选项_by`myh0st》

认识HTTP协议

https://www.cnblogs.com/wangyuyang1016/p/10421073.html

HTTP是一个可扩展的协议~

X-Frame-Options:

X-Frame-Options HTTP响应头是用来给浏览器 指示允许一个页面 可否在 <frame> <iframe> <embed>或者<object>中展现的标记。站点可以通过确保网站没有被嵌入到别人的站点里面,从而避免 点击劫持攻击。

frame标签:框架标签,放置一个HTML文档(页面) iframe标签:内联框架标签,在一个HTML页面中显示(插入)另一个HTML页面 embed标签:音频元素标签,插入一个音频元素 object标签:定义外部内容的容器标签

  • 语法: DENY:表示该页面不允许在frame中展示,即便在相同域名的页面中嵌套也不可以。 SAMEORLGIN:表示该页面可以在相同域名页面的frame中展示 ALLOW - FROM:表示该页面可以在指定来源的frame中展示 如果设置DENY,该页面在任何地方的frame中都无法加载;设置SAMEORLGIN那么就可以在同域名页面中的frame标签中嵌套并加载该页面
配置Web容器:
  • 配置Apache,所有页面上发送X-Frame-Options响应头,需要在site中配置如下:
代码语言:javascript复制
Header always append X-Frame-Options SAMEORLGIN
  • 配置Nginx,所有页面上发送X-Frame-Options响应头,在http,server或者locationp配置中添加:
代码语言:javascript复制
add_header X-Frame-Options SAMEORLGIN;
  • 配置IIS,在Web.config文件中添加:
代码语言:javascript复制
<system.webServer>
	<httpProtocol>
        <customHeaders>
            <add name="X-Frame-Options" value="SAMEORLGIN" />
        </customHeaders>
    </httpProtocol>    
</system.webServer>

*具体的技术文档请参考:MDN_X-Frame-Options

MDN Web Docs 是一个提供 Web 技术和促进 Web 技术软件的不断发展的学习平台,包括:

  • Web 标准(例如:CSS、HTML 和 JavaScript)
  • 开放 Web 应用开发
  • Firefox 附加组件开发

X-Content-Type-Options:

X-Content-Type-Options HTTP响应首部相当于一个提示标志,服务器用来提示客户端一定要遵循在 Content-Type 首部中对 MIME 类型 的设定,而不能对其进行修改。这就禁用了客户端的 MIME 类型嗅探(防止用户修改MIME上传非法文件类型或利用解析来执行JavaScript……)行为,换句话说,也就是意味着网站管理员确定自己的设置没有问题。

通过X-Content-Type-OptionsHTTP响应头可以禁止浏览器的类型猜测行为;

  • 语法:
代码语言:javascript复制
X-Content-Type-Options:nosniff
  • 指令:(nosniff是固定的nosniff:(下面两种情况会被禁止) ​ 请求类型style但是MIME类型不是text/css ​ 请求类型script但是MIME类型不是application/x-javascript

Access-Control-Allow-Origin:

Access-Control-Allow-Origin 响应头指定了该响应的资源是否被允许与给定的origin共享。跨原始资源共享(CORS)允许网站在它们之间共享内容,为了使网站之间安全的跨域获取资源,可以通过设置Access-Control-Allow-Origin来允许指定网站来跨域获取本地资源。

当目标页面的response中包含Access-Control-Allow-Origin这个header,并且value有对方的域名,浏览器才允许目标获取页面的数据。

只允许”10.10.10.10“访问自己本地资源

代码语言:javascript复制
Access-Control-Allow-Origin: http://10.10.10.10

X-XSS-Protection:

HTTP X-XSS-Protection 响应头是Internet Explorer,Chrome和Safari的一个功能,当检测到跨站脚本攻击 (XSS)时,浏览器将停止加载页面。虽然这些保护在现代浏览器中基本上是不必要的,当网站实施一个强大的Content-Security-Policy来禁用内联的JavaScript ('unsafe-inline')时, 他们仍然可以为尚不支持 CSP 的旧版浏览器的用户提供保护。

CSP:内容安全策略 ​ 用于检测和减轻用于Web站点的特定类型的攻击,例如XSS和SQL注入;基于Content-Security-Policy实现策略


HTTP Strict Transport Security(HSTS):

HTTP Strict Transport Security(通常简称为HSTS)是一个安全功能,它告诉浏览器只能通过HTTPS访问当前资源,而不是HTTP。

一个网站接受一个HTTP的请求,然后跳转到HTTPS,用户可能在开始跳转前,通过没有加密的方式和服务器对话,比如,用户输入http://foo.com或者直接foo.com。

这样存在中间人攻击潜在威胁,跳转过程可能被恶意网站利用来直接接触用户信息,而不是原来的加密信息。

网站通过HTTP Strict Transport Security通知浏览器,这个网站禁止使用HTTP方式加载,浏览器应该自动把所有尝试使用HTTP的请求自动替换为HTTPS请求。

注意: Strict-Transport-Security 在通过 HTTP 访问时会被浏览器忽略; 因为攻击者可以通过中间人攻击的方式在连接中修改、注入或删除它. 只有在你的网站通过HTTPS访问并且没有证书错误时, 浏览器才认为你的网站支持HTTPS 然后使用 Strict-Transport-Security 的值 .

*HTTP Strict Transport Security(HSTS)参考文档


Content Security Policy*

CSP是一个计算机的安全标志,主要用来防止XSS、点击劫持、SQL注入等攻击;CSP通过定义运行加载脚本的位置和内容防止恶意代码的加载。

内容安全策略CSP技术文档


小编安利:

一个Web开发技术的优秀文档技术网站:https://developer.mozilla.org/zh-CN/

0 人点赞