javascript - 为什么内联 JavaScript 安全性不好?

标签 javascript security

我知道内联 JS 不利于性能,但为什么它不利于安全呢?你能向我解释一下为什么吗?有一些例子吗?

最佳答案

限制性content security policy通过禁止除具有特定哈希值的脚本之外的所有脚本,可以帮助减少脚本注入(inject)漏洞的影响。

  • 如果您使用 on* 形式的内联 JavaScript属性或javascript: URL,你根本无法实现这种类型的策略,所以这肯定不太安全。

  • 如果您使用 <script> 形式的内联 JavaScript没有 src ,创建用于 CSP 的哈希值或随机数不太方便,这可能会诱使人们根本不添加哈希值或随机数。随机数策略还允许使用动态脚本,这通常是个坏主意(动态脚本的唯一用途是在 <script> 中插入 JSON,因为它看起来与 JavaScript 兼容 - 会导致错误和脚本注入(inject)²)。

¹ 或位于仅用于静态内容的特定域。小心允许域(包括源!)提供可以充当脚本的用户内容!
² 未转义引起的 < 、U+2028 和 U+2029 – JSON 与内联 JavaScript 的 3 个不兼容性。我建议使用典型的 HTML 转义并读取 data-属性代替。

关于javascript - 为什么内联 JavaScript 安全性不好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48672542/

相关文章:

javascript - Proj4Leaflet 在 Leaflet 中从 4326 转换为 3857

javascript - 在组合属性选择器中使用 OR 条件

security - 在应用程序代码中保存密码

java - NetLogo 的安全问题

javascript - 使用 GMaps.js 集成 Google Maps API - 看不到在哪里添加我的 API key

javascript - 添加 javascript 像素值?

java - 解密 AES/CBC/PKCS5Padding 错误 : Given final block not properly padded

linux - 使用 EV SSL 添加自定义 Green BAR MSG

javascript - .js 文件被所有浏览器阻止

php - 文件名中的单引号 - javascript,php