安全头响应头(一)Content-Security-Policy

news2025/1/19 3:22:00

一  Content Security Policy  CSP

中文翻译

①  背景引入

++++++++++++  "重点提炼"  ++++++++++++

1) CSP最初被设计用来'减少XSS跨站点脚本攻击',该规范后续版本还可防止其他如点击劫持形式的攻击

2) CSP 的实质就是'白名单'制度

  [1]、网站开发者'明确'告诉客户端,'哪些外部资源'可以'加载'和'执行',等同于提供白名单

  [2]、它的实现和执行全部'由浏览器完成',开发者只需'提供CSP头配置'

  [3]、来限制'哪些外部资源(如JavaScript、CSS、图像等)'可以'被加载',从'哪些url'加载

3) 大大增强了'网页的安全性',攻击者即使发现了漏洞,'也没法'注入脚本

②  启用CSP的两种方法

方式1:  --> 添加'响应头',注意"单双引号"嵌套

  add_header Content-Security-Policy "script-src 'self'; object-src 'none'";

方式2:  --> html中'head标签'内嵌'meta标签'

<meta
  http-equiv="Content-Security-Policy"
  content="default-src 'self'; img-src https://*; child-src 'none';" />

备注: 如果 HTTP 头与 Meta 定义同时存在,则'优先采用 HTTP 中'的定义

③   CSP语法

1) default-src是'CSP指令',多个指令之间用'英文分号;'分割;

2) 'self'是指令值,'多个'指令值用'英文空格'分割

④  CSP指令汇总  各个指令的解读

实质: '资源类型' 限制选项,掌握'常见'的即可

1) script-src:定义'js文件'的过滤策略

2) style-src: 样式表'css'

3) img-src:   图像'各种格式'

4) media-src: 媒体文件'音频和视频' --> 如' <audio>, <video>'等元素

5) font-src:  字体文件

6) object-src:插件'比如 Flash'

7) child-src: 框架

8) frame-src: 嵌入的'子frame'资源 '比如<frame>、<iframe>、<embed>'

9) connect-src:定义请求连接文件的过滤策略 '(通过 XHR、WebSockets、EventSource等)'

   script-src * 'self' 'unsafe-eval' 'unsafe-inline' blob: data: gap:;

10) worker-src:worker脚本 --> "了解"

11) manifest-src:'manifest 文件'

12) default-src 'self'  用来设置上面'各个选项'的'默认'值 --> "当前域名",需要'加引号'

 备注: 如果同时设置某个单项限制'比如font-src'和'default-src',前者会'覆盖'后者

+++++++++++  "其它"  +++++++++++

base-uri:限制'<base#href>'

form-action:限制'<form#action>'

重点:1 如果同一个限制选项'使用多次',只有'第一次'会生效

重点2:由于 img-src '不存在',它使用的是 'default-src'

Content Security Policy (CSP)中blob:的用法   object-src blob

⑤  default-src指令

⑥    CSP 常用指令值

'self': 只能加载自身相同的域资源,其他如 'data: 、blob:' 就不能了

每个'CSP限制选项'可以设置'以下几种值',这些值就构成了'白名单'。

1) 主机名:example.org,https://example.com:443

2) 路径名:example.org/resources/js/

3) 通配符:*.example.org,*://*.example.com:*'(表示任意协议、任意子域名、任意端口)'

4) 协议名:https:、data:

5) 关键字'self':当前域名,需要'加引号'

6) 关键字'none':'禁止'加载任何外部资源,需要加引号

组织内联代码执行和eval功能 

host和schema

 

⑦  报错汇总

 connect-src报错  https://*不生效使用https:  其它报错   Refused to load the image 'blob:

1) 上传图片'失败'

  Refused to connect to 'blob:http://XXX' because it violates the \

    following Content Security Policy directive: "connect-src 'self'" 

  1) the 'violated directive' is "connect-src 'self'",

  2) but your <meta CSP> contains 'connect-src * blob: data: gap:';

2)  image报错  --> '由于*不包含blob:'

  Refused to load the image 'blob:'

  [1]、将 'img-src blob:' 添加到 Content-Security-Policy 值

  [2]、或者将 'blob:' 添加到现有的 'default-src' 值

vue项目构建后CSP报错解决办法   CSP 256报错   CSP常见报错汇总

⑧  参考链接

阮神Content Security Policy 入门教程

内容安全策略

CSP内容安全策略

Chrome插件modheader,通过随意设置响应头来测试CSP

+++++++++  缓存新鲜度的案例 -->'时间不同步很常见(5s)'或者'时钟不同步'等,用nginx来模拟

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/422672.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

STM32H750ZBT6核心板设计

成品图 注意事项 1、主频无法设置480Mhz,只能最高设置为400Mhz 设置版本号为V版本&#xff0c;即稳定版本即可以设置主频为480Mhz了&#xff0c;不清楚自己的STM32H750是什么版本&#xff0c;可以查看芯片上丝印&#xff0c;ST公司LOGO旁边有个Y/V&#xff0c;即是版本号。 2…

零碎Java

1. 1995年Sun公司开发了java 2009年Oracle收购了Sun公司 其中2004年的java5.0和2014年的java8.0更新力度最大 java特性&#xff1a;第一至今已有20多年了 第二编程语言 第三应用广泛 2. 二进制中逢二进一 11 10 111100 0000万 0000&#xff0c;0000亿 …

RK3568平台开发系列讲解(设备驱动篇)V4L2程序实现流程

🚀返回专栏总目录 文章目录 一、V4L2 进行视频采集二、命令标识符三、V4L2程序实例3.1、打开设备3.2、查询设备属性3.3、显示所有支持的格式3.4、设置图像帧格式3.5、申请缓冲区3.6、将申请的缓冲帧从内核空间映射到用户空间3.7、将申请的缓冲帧放入队列,并启动数据流3.8、启…

配置mpls vpn MCE组网

实验三&#xff1a;配置mpls vpn MCE组网 1、实验环境&#xff1a; 某公司需要通过mpls vpn实现总部和分部的互访&#xff0c;并且要实现不同部门之间的业务隔离&#xff0c;为了节省开支&#xff0c;总公司使用MCE设备接入不同的部门。要求分公司A只能访问总公司的部门A&…

分子生物学 第二章 遗传物质

文章目录第二章 遗传物质第一节 遗传物质的分子本质大多数生物体的遗传物质是DNA有些生物体的遗传物质是RNA蛋白质能否充当遗传物质第二节 核酸的结构1 DNA双螺旋结构的特征2 影响DNA双螺旋结构稳定性的因素3 DNA结构的多态性4 DNA多链结构5 DNA的超螺旋结构6 RNA的二级结构第三…

性能测评:腾讯云轻量2核4G5M服务器CPU内存带宽流量系统盘

2核4G云服务器可以选择腾讯云轻量应用服务器&#xff0c;自带5M公网带宽&#xff0c;5M带宽下载速度峰值可达640KB/秒&#xff0c;系统盘为60GB SSD盘&#xff0c;每月500GB流量包&#xff0c;折合每天16GB流量&#xff0c;2核4G5M轻量服务器一年168、198元15个月、三年628元&a…

OpenMV快速上手 | OpenMV硬件版本概述及HelloWorld

文章目录一、OpenMV1. 什么是OpenMV2. OpenMV版本2.1. OpenMV1&#xff08;M4 V1&#xff09;2.2. OpemMV2&#xff08;M4 V2&#xff09;2.3. OpenMV3&#xff08;M7&#xff09;2.4. OpenMV4&#xff08;H7&#xff09;二、OpenMV开发环境搭建三、hello world1. 连接OpenMV2.…

Callable、Runnable、Future 和 FutureTask

Callable 和 Future 是 Java 在后续版本中引入的&#xff0c;Callable 类似于 Runnable 接口&#xff0c;实现 Callback 接口的类与实现 Runnable 接口的类都可以用于被被线程执行的任务。 以下是两个接口的相关源码&#xff1a; // /xref/libcore/ojluni/src/main/java/java…

我为什么开发个人版的ChatGPT,而不使用集成好的商业版的十大好处。

随着人工智能技术的不断发展&#xff0c;ChatGPT已经成为了许多人工智能爱好者的热门话题。然而&#xff0c;面对现有的商业版ChatGPT&#xff0c;许多人可能会感到疑惑&#xff1a;为什么要自己开发个人版的ChatGPT&#xff0c;而不是直接使用集成好的商业版&#xff1f;本文将…

C++ 并发编程

文章目录基本概念编程创建线程启动共享数据相关条件变量时间相关future相关——等待一次性事件读写锁原子操作与缓存一致性关系线程管理启动线程从类的方法来创建线程传参标识线程常用API等待线程完成后台运行线程移动线程间共享数据互斥量&#xff08;mutex&#xff09;unique…

公网WebSocket Client远程连接本地WebSocket Server【内网穿透】

目录 1. Java 服务端demo环境 2. 在pom文件引入第三包封装的netty框架maven坐标 3. 创建服务端,以接口模式调用,方便外部调用 4. 启动服务,出现以下信息表示启动成功,暴露端口默认9999 5. 创建隧道映射内网端口 6. 创建隧道映射本地端口 7. 测试公网远程连接 1. Java 服…

一文轻松教会你基于Excel+关键字驱动的自动化测试框架封装

目录 一、概述 二、框架设计 测试用例管理 关键字库封装 数据驱动设计 日志记录和报告生成 三、框架实现 测试用例管理 关键字库封装 数据驱动设计 日志记录和报告生成 四、框架使用 编写测试用例 编写关键字库 执行测试 五、总结 一、概述 在软件开发过程中&a…

【Spring Security】| 从0到1编写一个权限认证 | 学会了吗?

目录一. &#x1f981; 认证前的工作1. 添加依赖2. 创建数据库表&#xff08;数据自行添加&#xff09;3. 编写用户实体类4. 编写Dao接口5. 在启动类中添加 MapperScan 注解6. 继续添加各种包二. &#x1f981; 自定义逻辑认证原理—UserDetailsService三. &#x1f981; 数据库…

Android Studio Flamingo | 2022.2.1 发布,快来看看有什么更新吧

原文链接 https://developer.android.com/studio/releases 新的 Android Studio 版本 Flamingo (火烈鸟) 已经发布&#xff0c;本次更改最有意思的点在于&#xff1a; Flamingo 自带的 JDK 是 JDK 17 而不再是 JDK 11&#xff0c;另外还有如 IDE 支持应用主题图标和动态颜色&am…

TikTok和国产抖音的发展路径和趋势

鑫优尚电子商务&#xff1a;以历史为镜子&#xff0c;我们可以知道变化。 纵观TikTok和国产抖音&#xff0c;我们会发现TikTok目前的发展路径和趋势与国产抖音的主线十分相似&#xff0c;直播也是如此。鑫优尚电子商务 国内抖音直播一般经历过四个时代&#xff1a;直播1.0时代…

AIGC周报|清华、北邮新研究:让文生图AI更懂你

AIGC通过借鉴现有的、人类创造的内容来快速完成内容创作。ChatGPT、Bard等AI聊天机器人以及DallE 2、Stable Diffusion等文生图模型都属于AIGC的典型案例。「AIGC技术周报」将为你带来最新的paper、博客等前瞻性研究。 OpenAGI&#xff1a;当大模型遇见领域专家 “愿原力与大型…

分子生物学 第五章 DNA损伤修复和突变

文章目录第五章 DNA损伤修复和突变第一节第二节 DNA损伤的类型1 造成DNA损伤的因素2 DNA损伤的类型3 DNA损伤修复机制3.1 直接修复3.2 切除修复3.3 双链断裂修复3.4 重组修复3.5 跨越合成第五章 DNA损伤修复和突变 第一节 损伤&#xff1a;比如碱基&#xff0c;甲基化 突变&…

JavaSE学习进阶day04_04 正则表达式和Lambda表达式

第六章 正则表达式&#xff08;超级重要&#xff09; 开发心得&#xff1a;看着正确数据&#xff0c;从左到右书写正则表达式 6.1 正则表达式的概念及演示 在Java中&#xff0c;我们经常需要验证一些字符串&#xff0c;例如&#xff1a;年龄必须是2位的数字、用户名必须是8位…

爬虫日常练习-协程方式爬取图片

文章目录前言代码设计前言 hello朋友们&#xff0c;欢迎回来。这里是无聊的网友。今天给大家分享另一种处理多任务的方法–协程 那么在开始之前我们首先要了解什么是协程。协程是在一个线程内&#xff1a;多个任务出现阻塞时&#xff0c;由envet_loop轮转查看阻塞状态&#…

Zeppelin0.9.0 连接 Hive 3.1.2(踩坑,亲测有效)

一、前提 已经安装好Hadoop、Hive&#xff08;可以启动hiveserver2&#xff09;、Zeppelin 1.启动Hadoop [roothurys24 ~]# start-all.sh 2.启动hiveserver2 [roothurys24 ~]# cd /opt/soft/hive312/conf/ [roothurys24 conf]# nohup ../bin/hive --service hiveserver2 &a…