javascript - 如果某些脚本删除了先前加载或包含的脚本,那么异步加载 webapps 会发生什么?

标签 javascript json cross-browser security browser-security

问题是: 如果某些脚本删除了以前加载或包含的脚本,那么在异步加载 Web 应用程序时会发生什么情况?

让我们包含几个脚本:

<script src="Squel.js" async="" type="text/javascript"></script>
<script src="PSquel.js" async="" type="text/javascript"></script>
<script src="MySquel.js" async="" type="text/javascript"></script>

无论是通过标记包含还是通过requireJS动态包含,异步脚本包含的顺序都是一样的。

MySquel.js 文件的内容可能是这个恶意代码:

document.getElementsByTagName('script').forEach(function(val,i,arr){
if(/PSquel/.test(val.src)){
val.parentNode.removeChild(val);
}
}

当然,这个问题是非常特定于浏览器的,但我感兴趣的是,是否存在任何会在任何特定浏览器中打开内存漏洞的怪癖。 我也对您知道的任何边缘情况感兴趣!

我非常感谢您对您所知道的关于可能不安全的脚本加载的任何边缘情况的响应! 谢谢。

最佳答案

没有。 <script>节点从 DOM 中删除,但这不能恢复在通过它们加载的 JavaScript 执行期间发生的事情。实际上,它们在实例化后没有任何作用,这会触发脚本下载和评估。

唯一可能受影响的是依赖 DOM 节点存在的其他脚本,例如从中读取模板字符串、内容位置 url 或其他数据。

关于javascript - 如果某些脚本删除了先前加载或包含的脚本,那么异步加载 webapps 会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14782688/

相关文章:

javascript - __proto__ 和原型(prototype)的区别

java - 如何使用 Gson 将 Json 转换为 Java 对象

CSS header 并没有完全消失(Safari 5.1.5 和所有其他浏览器)

css - margin-bottom 有点跨浏览器的灰色区域

javascript - SCRIPT5039 : Redeclaration of const property using IE9

javascript - 限制每行的字符数并换行,同时保留前导空格

javascript - 清除 Angularjs state.go 参数

arrays - 使用 Dart 语言解析嵌套的 JSON 数组并将其放入模型类中

php - 排除 PDO::fetchAll() 的编号索引元素

html - 一行的文本大小一致