jquery - jQuery getScript 方法如何确保动态加载的 JavaScript 的安全执行?

标签 jquery security eval

我想使用AJAX动态加载JS文件并执行它。我指的是this page其中说:“目前,注入(inject) JS 代码的首选方式似乎是使用 AJAX 加载 JS 源,然后 eval() 代码。”

但我担心使用 eval 来执行脚本。只是为了看看 jQuery 如何实现这个,我检查了它的源代码并发现了这个:

getScript: function( url, callback ) {
    return jQuery.get( url, undefined, callback, "script" );
}

然后我搜索了 jQuery get 方法。但是定义了几个get方法。我是 JS 中的 OOP 新手,不知道在哪里寻找正确的 get 方法。

我想知道它如何执行脚本 - 是否使用 eval,如果是,它的安全性如何。

有人可以指导我如何寻找正确的获取方法。

最佳答案

没有什么可以确保“安全”(实际上无法做到)。
您只需加载受信任的脚本即可。

经过一些委托(delegate)后,jQuery 将调用一个名为“globalEval”的方法,该方法要么运行 .execScript() (IE),要么运行标准 window.eval()传输的脚本文件。无论哪种方式,执行的脚本都可以访问任何内容。

关于jquery - jQuery getScript 方法如何确保动态加载的 JavaScript 的安全执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6259196/

相关文章:

javascript - 在文档加载和函数调用时选择不同的行

gwt - 在 GWT 应用程序中,如何保护我的地点和事件免受未经授权的用户的侵害?

javascript - SetTimeout 后获取返回值

java - jQuery 不执行 servlet doGet

javascript - 使用 $.ajax 的问题

amazon-web-services - AWS Cognito 和 CORS 安全问题

namespaces - ClojureScript 评估。如何使用调用代码中包含的库

bash - 为什么 eval 使用 set -e 退出 subshel​​l mid-&&?

php - 使用 PHP 更改 CSS 属性

security - 评估在查询字符串中暴露行身份的安全风险