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

2023-12-03 14:36

本文主要是介绍Web安全权限策略记录-PPH/CSP/XFO,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 一、前言
  • 二、常用策略内容
    • 1、Permissions-Policy header
    • 2、Content-Security-Policy
    • 3、X-Frame-Options
  • 三、如何使用策略
    • 1、Permissions-Policy header
      • 1.1、禁止特定功能的访问
      • 1.2、允许特定域名的访问
      • 1.3、允许所有域名的访问
      • 1.4、允许内嵌iframe的访问
    • 2、Content-Security-Policy
      • 2.1、允许特定域名 利用iframe 加载本网站
      • 2.2、多策略内容
    • 3、X-Frame-Options
      • 3.1、禁止所有域名以iframe加载
      • 3.2、仅同源域名以iframe加载
      • 3.3、设置其他域名以iframe加载

一、前言

本文主要用于介绍遇到的 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

这篇关于Web安全权限策略记录-PPH/CSP/XFO的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/449792

相关文章

在Spring Boot中浅尝内存泄漏的实战记录

《在SpringBoot中浅尝内存泄漏的实战记录》本文给大家分享在SpringBoot中浅尝内存泄漏的实战记录,结合实例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧... 目录使用静态集合持有对象引用,阻止GC回收关键点:可执行代码:验证:1,运行程序(启动时添加JVM参数限制堆大小):2,访问 htt

SpringRetry重试机制之@Retryable注解与重试策略详解

《SpringRetry重试机制之@Retryable注解与重试策略详解》本文将详细介绍SpringRetry的重试机制,特别是@Retryable注解的使用及各种重试策略的配置,帮助开发者构建更加健... 目录引言一、SpringRetry基础知识二、启用SpringRetry三、@Retryable注解

MySQL 分区与分库分表策略应用小结

《MySQL分区与分库分表策略应用小结》在大数据量、复杂查询和高并发的应用场景下,单一数据库往往难以满足性能和扩展性的要求,本文将详细介绍这两种策略的基本概念、实现方法及优缺点,并通过实际案例展示如... 目录mysql 分区与分库分表策略1. 数据库水平拆分的背景2. MySQL 分区策略2.1 分区概念

MySQL 中查询 VARCHAR 类型 JSON 数据的问题记录

《MySQL中查询VARCHAR类型JSON数据的问题记录》在数据库设计中,有时我们会将JSON数据存储在VARCHAR或TEXT类型字段中,本文将详细介绍如何在MySQL中有效查询存储为V... 目录一、问题背景二、mysql jsON 函数2.1 常用 JSON 函数三、查询示例3.1 基本查询3.2

Python从零打造高安全密码管理器

《Python从零打造高安全密码管理器》在数字化时代,每人平均需要管理近百个账号密码,本文将带大家深入剖析一个基于Python的高安全性密码管理器实现方案,感兴趣的小伙伴可以参考一下... 目录一、前言:为什么我们需要专属密码管理器二、系统架构设计2.1 安全加密体系2.2 密码强度策略三、核心功能实现详解

Spring Security基于数据库的ABAC属性权限模型实战开发教程

《SpringSecurity基于数据库的ABAC属性权限模型实战开发教程》:本文主要介绍SpringSecurity基于数据库的ABAC属性权限模型实战开发教程,本文给大家介绍的非常详细,对大... 目录1. 前言2. 权限决策依据RBACABAC综合对比3. 数据库表结构说明4. 实战开始5. MyBA

Python获取中国节假日数据记录入JSON文件

《Python获取中国节假日数据记录入JSON文件》项目系统内置的日历应用为了提升用户体验,特别设置了在调休日期显示“休”的UI图标功能,那么问题是这些调休数据从哪里来呢?我尝试一种更为智能的方法:P... 目录节假日数据获取存入jsON文件节假日数据读取封装完整代码项目系统内置的日历应用为了提升用户体验,

Spring Boot 配置文件之类型、加载顺序与最佳实践记录

《SpringBoot配置文件之类型、加载顺序与最佳实践记录》SpringBoot的配置文件是灵活且强大的工具,通过合理的配置管理,可以让应用开发和部署更加高效,无论是简单的属性配置,还是复杂... 目录Spring Boot 配置文件详解一、Spring Boot 配置文件类型1.1 applicatio

JSON Web Token在登陆中的使用过程

《JSONWebToken在登陆中的使用过程》:本文主要介绍JSONWebToken在登陆中的使用过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录JWT 介绍微服务架构中的 JWT 使用结合微服务网关的 JWT 验证1. 用户登录,生成 JWT2. 自定义过滤

一文教你如何将maven项目转成web项目

《一文教你如何将maven项目转成web项目》在软件开发过程中,有时我们需要将一个普通的Maven项目转换为Web项目,以便能够部署到Web容器中运行,本文将详细介绍如何通过简单的步骤完成这一转换过程... 目录准备工作步骤一:修改​​pom.XML​​1.1 添加​​packaging​​标签1.2 添加