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

时间:2011-06-06 23:33:19

标签: jquery security eval

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

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

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

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

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

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

1 个答案:

答案 0 :(得分:5)

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

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