问题标签 [browser-security]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
649 浏览

jquery - jQuery 3.5.1 和 CSP 脚本-src-elem

我最近将 jQuery 从 2.1.1 升级到 3.5.1,我开始在 Chrome 浏览器的控制台中看到这个 CSP 违规

拒绝执行内联脚本,因为它违反了以下内容安全策略指令:“script-src 'self' 'nonce-7xyNokwFS08H1wnqtUmzycmiRKTgUZJQZJUN34B0v8A=' 'unsafe-eval'”。启用内联执行需要“unsafe-inline”关键字、哈希(“sha256-+oZkjQp5ZgVWtUq2rV5UqKJhNxGno8jem/DRZmR+mcI=”)或随机数(“nonce-...”)。

b@jquery.min.js:2

但是发布的 CSP 报告显示

所以违反的指令script-src-elem并不script-src像浏览器的控制台日志显示的那样。

我知道这script-src-elem是在 CSP 3 中添加的,如果该指令不存在,用户代理将查找该script-src指令,如果它们都不存在,则回退到该default-src指令。

如果我使用 nonce 添加script-src-elem 'self' 'unsafe-inline'并保持script-src原样,那么我看不到任何违规行为。

我正在使用支持 CSP 3 的 Chrome 版本 90.0.4430.93,我的问题是当用户代理不支持 CSP 3 时会发生什么?在那种情况下,它会回退到然后抛出错误,因为script-src我没有unsafe-inlinescript-src

0 投票
1 回答
42 浏览

javascript - 如何在反应中上传时检查受限制的文件

如果有人将文件扩展名重命名为允许的扩展名,请说 abc.exe 为 abc.pdf 并尝试上传它。

我想知道 React/JavaScript 中是否有任何可用的开源库来检测文件中的内容,这样即使文件的扩展名更改为代码中允许的内容,也不会签入可执行或恶意代码