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

这篇具有很好参考价值的文章主要介绍了安全头响应头(一)Content-Security-Policy。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一  Content Security Policy  CSP

中文翻译

①  背景引入

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

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

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

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

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

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

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

  备注: 取决于'浏览器'的'支持'程度

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

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

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

②  启用CSP的两种方法

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

方式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'是'source'值,'多个'指令值用'英文空格'分割

④  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  blob协议

⑤ scp官网default-src指令解读   default-src指令

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

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

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

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

⑥    CSP 常用source

+++++++ "(1) host-source"  +++++++

备注: '推荐'完整的白名单,尽量不只使用'协议'或'通配符'

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

source相关参考 

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

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

2) 带url:example.org/resources/js/

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

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

5) 关键字'none':'禁止'加载任何外部资源,需要加'引号'
+++++++ "(2) scheme-source"  +++++++

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

 data:协议

+++++++ "(2) 'self'"  +++++++

1) 只能'加载本域'资源

2) chrome浏览器随对'self'不包含'blob:' 协议

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

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

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

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

⑦  报错汇总

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

1) 加载视频'失败'  --> 没有指定"connect-src 'self'",继承'默认值self'

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

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

    Note that 'connect-src' was not explicitly set, \  'connect-src没有指定'

      so 'default-src' is used as a fallback.  '回退使用default-src的值'

  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常见报错汇总

重要图片的base64编码 data:image

⑧  参考链接

阮神Content Security Policy 入门教程

内容安全策略

CSP内容安全策略

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

CSP在前端项目落地的两个阶段文章来源地址https://www.toymoban.com/news/detail-471982.html

到了这里,关于安全头响应头(一)Content-Security-Policy的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 前端安全-内容安全策略CSP(Content Security Policy)

    目录 CSP xss 使用方法 http头部设置 meta标签设置 策略集组成 常见指令 default-src report-uri 示例  指令(属性)  指令值(属性值) CSP学习链接  内容安全策略,为了页面内容安全而制定的一系列防护策略。可以通过CSP指定策略来规定页面加载的内容来源(这里的内容可以指脚本

    2024年02月05日
    浏览(29)
  • 【网络安全】Content Security Policy (CSP) 介绍

    内容安全策略 (CSP) 是一个额外的安全层,用于检测并削弱某些特定类型的攻击,包括跨站脚本 (XSS) 和数据注入攻击等。无论是数据盗取、网站内容污染还是散发恶意软件,这些攻击都是主要的手段。 当我不经意间在 Twitter 页面 view source 后,发现了惊喜。 相比平时看到的其

    2023年04月15日
    浏览(31)
  • Web安全之Content Security Policy(CSP 内容安全策略)详解

    Content Security Policy是一种网页安全策略,现代浏览器使用它来增强网页的安全性。可以通过Content Security Policy来限制哪些资源(如JavaScript、CSS、图像等)可以被加载,从哪些url加载。 CSP 本质上是白名单机制,开发者明确告诉浏览器哪些外部资源可以加载和执行,可以从哪些url加

    2024年02月13日
    浏览(29)
  • [网络安全] DVWA之Content Security Policy (CSP) Bypass 攻击姿势及解题详析合集

    CSP 是 Content Security Policy(内容安全策略)的缩写,是一种用于增强 Web 应用程序安全性的安全机制。它通过允许网站管理员控制页面中加载内容的来源来减少跨站脚本攻击(XSS)等常见的安全风险。 CSP 的工作原理是通过定义一组策略规则,指定哪些来源可以被信任和允许加

    2024年02月05日
    浏览(37)
  • Refused to frame ‘XXX‘ because an ancestor violates the following Content Security Policy directive:

    问题:Chrome无痕模式下,无法访问iframe嵌套的页面,页面类似白屏 定位原因:CSP安全策略问题,但是服务端无法支持修改 解决:option中添加一句请求头 所有option:

    2023年04月09日
    浏览(28)
  • Refused to load the script ‘xxxx.js‘ because it violates the following Content Security Policy ...

    在使用Electron封装一些模块的时候,出现以下错误: Refused to load the script ‘https://unpkg.com/xxxx.js’ because it violates the following Content Security Policy directive: “script-src ‘self’ ‘unsafe-eval’ ‘unsafe-inline’ data:”. Note that ‘script-src-elem’ was not explicitly set, so ‘script-src’ is used as a f

    2024年02月09日
    浏览(27)
  • 安全头响应头(三)​X-Content-Type-Options

    一  X-Content-Type-Options响应头                                             script标签  style  StyleSheet    JavaScript MIME type 文件扩展和Content-Type的映射关系 ①  基础铺垫 nginx(十八)mime.types的作用 ②  浏览器默认行为   ③    问题引入 现象及其相似  location和alias的搭配问

    2024年02月12日
    浏览(28)
  • Spring Security漏洞防护—HTTP 安全响应头

    Spring Security提供了 一套默认的安全HTTP响应头,以提供安全默认值。虽然这些头信息中的每一个都被认为是最佳实践,但应该注意的是,并不是所有的客户端都使用这些头信息,所以鼓励进行额外的测试。 你可以定制特定的header。例如,假设你想使用默认值,但你希望为 X-

    2024年02月03日
    浏览(25)
  • Spring Security 6.x 系列【46】漏洞防护篇之安全相关的HTTP响应头

    有道无术,术尚可求,有术无道,止于术。 本系列Spring Boot 版本 3.0.4 本系列Spring Security 版本 6.0.2 源码地址:https://gitee.com/pearl-organization/study-spring-security-demo

    2024年02月07日
    浏览(31)
  • 网络请求未知错误 CLEARTEXT communication to XX not permitted by network security policy 问题解决方案

    问题: 在进行网络请求时,日志中打印 CLEARTEXT communication to XX not permitted by network security policy 原因: Android P系统网络访问安全策略升级,限制了非加密的流量请求 Android P系统限制了明文流量的网络请求,之下的版本没有影响,所以okhttp3会抛出该异常。 解决方案: 方案1:降

    2024年02月11日
    浏览(24)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包