首页 前端知识 Content-Security-Policy —— HTML HTTP的内容安全策略

Content-Security-Policy —— HTML HTTP的内容安全策略

2024-06-07 23:06:51 前端知识 前端哥 167 901 我要收藏

指定哪些manifest可以应用到资源。

示例

<meta http-equiv=“content-security-policy” content="

manifest-src https://www.baidu.com/; ">

// 以下清单文件将无法加载

media-src

指定使用<audio><video>元素加载媒体的有效源。

示例

<meta http-equiv=“content-security-policy” content="

media-src https://www.baidu.com/; ">

// 以下音频与视频将不会被加载和播放

object-src

指定<object><embed><applet>元素的有效源

示例

<meta http-equiv=“content-security-policy” content="

object-src https://www.baidu.com/; ">

// 以下控件将不会被加载

prefetch-src

指令指定可以预取或预呈现的有效源

示例

<meta http-equiv=“content-security-policy” content="

prefetch-src https://www.baidu.com/; ">

// 以下资源将不会被预拉取或预渲染

script-src

指令指定 JavaScript 的有效来源。 这不仅包括直接加载到 <script> 元素中的 URL,还包括可以触发脚本执行的内联脚本事件处理程序 (onclick) 和 XSLT 样式表

特殊可选来源
  • 'strict-dynamic':严格的动态源代码表达式指定,通过使用nonce或hash将显式给予标记中存在的脚本的信任传播到该根脚本加载的所有脚本。同时,任何允许列表或源表达式(如“self”或“unsafe inline”)都将被忽略

  • 'report-sample': 要求在违规报告中包含违规代码的样本

示例

<meta http-equiv=“content-security-policy” content="

script-src https://www.baidu.com/; ">

// 以下资源将不会被预拉取或预渲染

// 以下脚本将不会被加载或执行

// 但是可以通过addEventListener方法来调用

document.getElementById(“btn”).addEventListener(‘click’, doSomething);

style-src

指定样式表的有效源

<meta http-equiv=“content-security-policy” content="

style-src https://www.baidu.com/; ">

// 以下样式表将不会被加载或应用

文档型指令

base-uri

限制可在文档的<base>元素中使用的URL

特殊可选来源
  • 'strict-dynamic':严格的动态源代码表达式指定,通过使用nonce或hash将显式给予标记中存在的脚本的信任传播到该根脚本加载的所有脚本。同时,任何允许列表或源表达式(如“self”或“unsafe inline”)都将被忽略

  • 'report-sample': 要求在违规报告中包含违规代码的样本

示例

// 控制台将会报错,改配置将不会被应用

sendbox

为请求的资源启用沙盒,类似于<iframe>沙盒属性。它对页面的操作应用限制,包括阻止弹出窗口、阻止插件和脚本的执行以及强制执行同一源策略。

允许的配置值

不允许应用上文的[[#可选来源]]

  • allow-downloads: 允许在用户单击按钮或链接后下载

  • allow-forms: 允许页面提交表单。 如果不使用该关键字,则不允许进行此操作

  • allow-modals: 允许页面打开模式窗口

  • allow-orientation-lock: 允许页面禁用锁定屏幕方向的功能

  • allow-pointer-lock: 允许页面使用指针锁 API

  • allow-popups: 允许弹出窗口(例如来自 window.open、target=“_blank”、showModalDialog)。 如果未使用此关键字,则该功能将默默地失败。

  • allow-popups-to-escape-sandbox 允许沙盒文档打开新窗口,而无需对其强制使用沙盒标志。例如,这将允许安全地对第三方广告进行沙盒处理,而无需对登录页施加相同的限制。

  • allow-presentation. 允许嵌入程序控制iframe是否可以启动表示会话

  • allow-same-origin 允许将内容视为来自其正常来源。如果不使用此关键字,则嵌入的内容将被视为来自唯一的来源

小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Web前端开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img
img
img
img

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频

如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注:前端)
img

总结:

  • 函数式编程其实是一种编程思想,它追求更细的粒度,将应用拆分成一组组极小的单元函数,组合调用操作数据流;

  • 它提倡着 纯函数 / 函数复合 / 数据不可变, 谨慎对待函数内的 状态共享 / 依赖外部 / 副作用;

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

Tips:

其实我们很难也不需要在面试过程中去完美地阐述出整套思想,这里也只是浅尝辄止,一些个人理解而已。博主也是初级小菜鸟,停留在表面而已,只求对大家能有所帮助,轻喷🤣;

我个人觉得: 这些编程范式之间,其实并不矛盾,各有各的 优劣势

理解和学习它们的理念与优势,合理地 设计融合,将优秀的软件编程思想用于提升我们应用;

所有设计思想,最终的目标一定是使我们的应用更加 解耦颗粒化、易拓展、易测试、高复用,开发更为高效和安全

更细的粒度,将应用拆分成一组组极小的单元函数,组合调用操作数据流;

  • 它提倡着 纯函数 / 函数复合 / 数据不可变, 谨慎对待函数内的 状态共享 / 依赖外部 / 副作用;

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

Tips:

其实我们很难也不需要在面试过程中去完美地阐述出整套思想,这里也只是浅尝辄止,一些个人理解而已。博主也是初级小菜鸟,停留在表面而已,只求对大家能有所帮助,轻喷🤣;

我个人觉得: 这些编程范式之间,其实并不矛盾,各有各的 优劣势

理解和学习它们的理念与优势,合理地 设计融合,将优秀的软件编程思想用于提升我们应用;

所有设计思想,最终的目标一定是使我们的应用更加 解耦颗粒化、易拓展、易测试、高复用,开发更为高效和安全

转载请注明出处或者链接地址:https://www.qianduange.cn//article/11386.html
标签
评论
发布的文章

在线OJ项目

2024-08-27 21:08:43

JSON2YOLO 项目教程

2024-08-27 21:08:42

Redis 实现哨兵模式

2024-08-27 21:08:22

大家推荐的文章
会员中心 联系我 留言建议 回顶部
复制成功!