如何让脚本在不破坏 CSP 的情况下使用 setAttribute 'style'

2023-11-21

我正在努力使我的 CSP 政策尽可能严格。我需要在我的捆绑包中包含 3d 派对组件。但它使用element.setAttribute('style'...)破坏CSP的方法。有没有办法允许这个特定的脚本以这种方式内联样式?


是的,有办法。

这里有很多关于这个的讨论:https://github.com/w3c/webappsec-csp/issues/212

最后简单总结一下:

CSP 在解析时进行检查并阻止解析样式属性。任何直接操作都会进行。

Using setAttribute调用 HTML 解析器并触发 CSP。

所以,而不是:

.setAttribute("style","background:red"); // needs HTML parsing

你需要:

.style.background = "red"; // direct manipulation

一种方法有效而另一种方法无效,这听起来可能很奇怪,我认为这里的理解是 HTML 属性和 DOM 属性之间存在细微的区别。https://joji.me/en-us/blog/html-attribute-vs-dom-property/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何让脚本在不破坏 CSP 的情况下使用 setAttribute 'style' 的相关文章

随机推荐

  • 有条件地调用成员函数而不使用临时变量

    我有一个返回对象的表达式 并且仅当某个布尔条件为 true 时 我才想在结果对象上调用方法 我想在 val 中获取结果 无论是对象 还是调用对象上的方法的结果 一种方法是使用临时变量 如下例所示 其中List 3 1 2 是返回对象的 可能
  • 在渲染 React hooks 之前等待 API 调用数据

    我进行 API 调用 看起来 React 继续构建一个没有数据的表 从而抛出以下错误 Uncaught TypeError Cannot read property map of undefined 这就是我正在做的 useEffect 非
  • 在 UIImageView 上添加渐变

    我正在尝试在我的上添加一个子层UIImageView但它不起作用 我有一组 10 张图像 命名为photo0 to photo9我显示 它有一个5秒的计时器 出口shanghaiImage是我的背景 我想在这个马蒂的顶部添加一个渐变 例如
  • Log4j 通过任何文件附加程序进行每日轮换和每月保留

    是否可以使用任何 log4j 附加程序来写入具有特定轮换时间和保留限制的日志 目标是 每天都有一个日志文件 在午夜创建一个新文件 新日志 保留日志文件并自动删除它们 经过一定时间后 因此删除超过 X 天 例如 30 天 的日志文件 看起来轮
  • 在 MongoDB 集合上为 Web 应用程序创建索引的推荐方法/位置

    我正在将 MongoDB 用于我们的 Web 应用程序 假设 MongoDB 上有一个用于传入请求的 find 在 MongoDB 集合上添加索引的推荐方式 位置是什么 我能想到的几个选择 1 初始化应用程序时集合上的 ensureInde
  • React 中的状态是什么?

    我知道状态允许我们创建动态和交互式的组件 但我想深入了解状态 有人可以帮助我使用现实生活中的例子来理解 React 中的状态吗 import React from react class App extends React Componen
  • 如何修复损坏的 HDFS 文件

    如何修复损坏的 HDFS 我查看了 Apache Hadoop 网站 它说fsck command 这并不能解决问题 希望以前遇到过这个问题的人可以告诉我如何解决这个问题 与本机文件系统的传统 fsck 实用程序不同 此命令不会纠正它检测到
  • 为什么这个 C++0x 代码不调用移动构造函数?

    由于某种原因 以下代码永远不会调用Event Event Event e Event a Event b Event temp temp move a a move b b move temp why not Using std swap调
  • 使用批处理脚本检查环境中是否存在 JAVA_HOME

    我想检查环境中是否存在 JAVA HOME 所以我写了下面的脚本a bat if JAVA HOME echo Enter path to JAVA HOME set p javahome if not JAVA HOME echo JAV
  • 如何实现 SetOnItemClickListener FirebaseRecyclerViewAdapter

    如何在 Firebase RecyclerView 适配器中实现 SetOnItemClickListener 事件 我使用文档聊天应用程序的示例 private FirebaseRecyclerViewAdapter mAdapter R
  • 如何使用 Apache POI XSSF Excel 的 IndexedColors 中没有的颜色?

    我正在查看一个我想要复制的 Excel 工作表 我遇到的唯一问题是颜色 我想要复制的颜色是Blue Accent 5 Lighter 40 and Light Green来自Standard Colors部分 我正在看docs在 XSSF
  • 来自 ElementUI 的 VueJs + Webpack 延迟加载模块

    我想在 Vue 组件中延迟加载 ElementUI 的特定元素 我试过这个 import Tree from webpackChunkName element ui element ui Vue component Tree name Tr
  • 如何在不使用 npm 的情况下安装 Node.js 模块?

    列出了相当多的模块在节点的 github 页面上但未通过 npm registry 发布 这些模块无法使用 npm 安装 从 Git 克隆这些 Nodejs 模块后 安装它们的正确方法是什么 您需要从 github 下载它们的源代码 找到主
  • Java 无法比较的数据类型 char 和 String

    当我运行 Javac 时 它告诉我 我有一个无法比较的数据类型 char 和 String while responseChar y 不确定要更改什么来修复此错误 import java util Scanner public class
  • 如何在 mule 中强制例外[关闭]

    Closed 这个问题需要细节或清晰度 目前不接受答案 我用的是3 2版本 当肥皂故障从服务返回时 我想记录错误并强制全局异常 我尝试使用
  • PHP 动态命名空间

    我需要能够做到这一点 ns common components cfoBi i18n countryCode gimmea use USP 显然这行不通 那么我该怎么做呢 有 动态命名空间 吗 不可能 命名空间 导入和别名在编译时解析 但是
  • Canvas:遮盖图像并保留其 Alpha 通道?

    这就是我想做的 获取图像 A 和图像 B 图像 B 是黑白掩模图像 将图像 A 的 Alpha 通道替换为图像 B 的红色通道 在画布上绘制图像 C 在图像 C 上绘制图像 A 在步骤 4 之前 一切似乎都正常 图像 C 根本不可见 而图像
  • 使用目录版本和 kotlin dsl 时未找到 LibraryExtension

    我在 gradle 中使用目录版本时遇到问题 我正在尝试将其应用到我的项目中 我从这里举了一个例子https github com android nowinandroid但是当我收到如下错误时 Extension of type Libr
  • Objective-C 中的 Sscanf 等效项

    我目前正在用 Objective C 编写一个 wavefront OBJ 加载器 并试图弄清楚如何以与 C 中的 sscanf 函数类似的方式解析 NSString 中的数据 OBJ 文件以 x y z 三元组的顶点 纹理坐标和法线定义面
  • 如何让脚本在不破坏 CSP 的情况下使用 setAttribute 'style'

    我正在努力使我的 CSP 政策尽可能严格 我需要在我的捆绑包中包含 3d 派对组件 但它使用element setAttribute style 破坏CSP的方法 有没有办法允许这个特定的脚本以这种方式内联样式 是的 有办法 这里有很多关于