Web安全权限策略记录-PPH/CSP/XFO

一、前言

本文主要用于介绍遇到的 HTTP Permissions-Policy headerCSPXFO内容,针对其实际运用做出记录,如何运用来巧妙限制脚本并保障网站的安全性
当然也可以直接搜寻 MDN 来了解更为直观,这里只讨论使用到的内容

Tips: 如果不生效,详情参考对应策略是否于当前测试浏览器中兼容

二、常用策略内容

这部分是关于安全策略头的可选,但它不是所有的选项,只有我们经常使用的值

1、Permissions-Policy header

权限相关限制内容

指令备注
geolocation管理通过浏览器获取位置MSG
syn-xhr管理是否允许异步调用,说白了是XMLHttpRequest
microphone管理是否允许调用麦克风
camera管理是否允许调用视频
magnetometer管理是否允许调用陀螺仪相关内容,如果做了侦测相关脚本建议开启
gyroscope管理是否允许调用陀螺仪相关内容,角度相关的内容
fullscreen管理是否允许调用系统的全屏接口

2、Content-Security-Policy

这里可以限定加载的内容资源,仅允许特定网站加载内容

指令备注
default-src默认基础地址,其他的策略也是默认此设置来源值
connect-src限制连接的来源值
frame-ancestors允许特定父类页面加载的域名,以iframe的模式加载本页面
worker-src限制类worker脚本的有效源头
style-src指定样式表的有效源
script-src指定JavaScript 的有效源

3、X-Frame-Options

用来限制特定网站以iframe加载本页面,多用于兼容IE中 CSP不足的部分

取值备注
DENY意味着禁止所有网站加载
SAMEORIGIN意味只允许同源访问
ALLOW-FROM origin允许特定域名访问

三、如何使用策略

首先说明 ,这里的策略一般都是针对其他嵌入内容的,对本网站的默认都是允许的。

1、Permissions-Policy header

取值备注
()意味着禁止
(self)意味只允许同源访问
*允许所有域名访问

1.1、禁止特定功能的访问

# 单策略
Permissions-Policy: geolocation=()
# 多策略
Permissions-Policy: geolocation=(),fullscreen=()

1.2、允许特定域名的访问

Permissions-Policy: geolocation=(self "https://yourdomain.com")

1.3、允许所有域名的访问

Permissions-Policy: geolocation=*

1.4、允许内嵌iframe的访问

# 默认下,相当于仅能同域名的iframe使用
 Permissions-Policy: geolocation=*,frame-ancestors 'self'
 # 允许其他域名的iframe使用,空格分割多个域名
 Permissions-Policy: geolocation=*,frame-ancestors 'self' https://yourdomain.com 

2、Content-Security-Policy

2.1、允许特定域名 利用iframe 加载本网站

# 单个域名的iframe使用
 Content-Security-Policy: frame-ancestors 'self' https://yourdomain.com
 # 空格分割多个域名
 Content-Security-Policy: frame-ancestors 'self' https://yourdomain.com https://yourdomain2.com

2.2、多策略内容

 Content-Security-Policy: default-src 'self'; script-src 'nonce-RANDOM_STRING' 'strict-dynamic'; style-src 'self' 'unsafe-inline'

3、X-Frame-Options

3.1、禁止所有域名以iframe加载

X-Frame-Options: DENY

3.2、仅同源域名以iframe加载

X-Frame-Options: SAMEORIGIN

3.3、设置其他域名以iframe加载

更多的域名,以空格分隔

# 单域名& 同源
Content-Security-Policy: frame-ancestors 'self' https://trusted-domain.com
# 多域名 & 同源
Content-Security-Policy: frame-ancestors 'self' https://trusted-domain1.com https://trusted-domain2.com
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值