http strict-transport-security,简称为hsts。
作用:允许一个https网站,要求浏览器总是通过https访问它。
strict-transport-security: max-age=16070400; includesubdomains
作用:减少/避免点击劫持 (clickjacking) 的攻击。
使用方式如下:
x-frame-options: sameorigin
响应头支持三种配置:
作用:防范xss攻击。
ps:这个是旧属性,基本上可以被csp取代,但是仍可以为还没有支持csp的浏览器提供一层保护。
主流浏览器默认都开启了xss保护。
使用方式如下:
x-xss-protection: 1; mode=block; report=/_/http-sec-report
支持配置:
作用:禁用浏览器的content-type猜测行为。
背景:
浏览器通常会根据响应头content-type字段来分辨资源类型。有些资源的content-type是错的或者未定义。这时,浏览器会启用mime-sniffing来猜测该资源的类型,解析内容并执行。
利用这个特性,攻击者可以让原本应该解析为图片的请求被解析为javascript。
使用方法:
x-content-type-options: nosniff
作用:用于定义页面可以加载哪些资源,减少和上报xss的攻击,防止数据包嗅探攻击。
响应头:
使用方法:
content-security-policy: default-src 'self'
元素也可以用于配置csp:
<meta http-equiv="content-security-policy" content="default-src 'self'; img-src https://*; child-src 'none';">
指令 | 指令值示例 | 说明 |
---|---|---|
default-src | 'self' cnd.a.com | 定义针对所有类型资源的默认加载策略,某类型资源如果没有单独定义策略,就使用默认的。 |
script-src | 'self' js.a.com | 定义针对javascript的加载策略 |
style-src | 'self' css.a.com | 定义针对样式的加载策略 |
img-src | 'self' img.a.com | 定义针对图片的加载策略 |
connect-src | 'self' | 针对ajax、websocket等请求的加载策略。不允许的情况下,浏览器会模拟一个状态为400的响应。 |
font-src | font.a.com | 针对webfont的加载策略 |
object-src | 'self' | 针对<object>、<embed>、<applet>等标签引入的flash等插件的加载策略 |
media-src | media.a.com | 针对<audio>、<video>等标签引入的html多媒体的加载策略。 |
frame-src | 'self' | 针对frame的加载策略 |
sanbox | allow-forms | 对请求的资源启用sandbox(类似于iframe的sandbox属性) |
report-uri | /report-uri | 告诉浏览器如果请求不被策略允许,往哪个地址提交日志信息。如果想让浏览器只汇报日志,不阻止任何内容,可以改用 content-security-policy-report-only 头。 |
指令值可以由下面内容组成:
指令值 | 指令值示例 | 说明 |
---|---|---|
img-src | 允许任何内容 | |
'none' | img-src 'none' | 不允许任何内容 |
'self' | img-src 'self' | 允许来自相同源的内容(相同的协议、域名和端口)。 |
data: | img-src data: | 允许data:协议(如base64编码的图片) |
www.a.com | img-src img.a.com | 允许加载指定域名的资源 |
.a.com | img-src .a.com | 允许加载a.com任何子域的资源 |
img-src | 允许加载img.com的https资源 | |
https: | img-src https: | 允许加载https资源 |
'unsafe-inline' | script-src 'unsafe-inline' | 允许加载inline资源(例如常见的style属性,onclick, inline js, inline css)。 |
'unsafe-eval' | script-src 'unsafe-eval' | 允许加载动态js代码,例如eval()。 |
作用:增加隐私保护。
可配置值:
作用:防止中间人攻击。是https网站防止攻击者利用ca错误签发的证书进行中间人攻击的一种安全机制,用于预防ca遭入侵或者其他会造成ca签发未授权证书的情况。
服务器通过public-key-pins(或public-key-pins-report-onky用于监测)header向浏览器传递http公钥固定信息。
基本格式:
public-key-pins: pin-sha256="base64=="; max-age=expiretime [; includesubdomains][; report-uri="reporturi"]
字段含义:
安全扫描网站:
如对本文有疑问, 点击进行留言回复!!
深入理解CSS background-blend-mode的作用机制
网友评论