gpt4 book ai didi

javascript - 评估服务器 js 文件的危险

转载 作者:行者123 更新时间:2023-11-28 10:10:31 25 4
gpt4 key购买 nike

为了以异步方式从服务器加载外部 js 文件,我使用 jquery.get() 来检索这些 js,而不必通过包含在 html 头部或正文末尾来等待它们加载文件作为字符串,使用 eval() 转换为对象并分配给全局变量作为属性,即(伪代码):

var globalNameSpace = {};
var data = jquery.get('url/foo.js'); // foo.js returns a function with code
globalNameSpace[foo] = eval(data);
// from here onwards, access code in foo.js as:
globalNameSpace.foo.property;
globalNameSpace.foo.method();

这也意味着我可以显示带有加载栏等的 html 页面。

问题是,所有对 eval() 的炒作对于不受控制的输入都是危险的,因为这只是从我自己的服务器加载“受控”(尽管可能有错误:P)脚本(ajax相同的域策略等) ,这比简单地包含带有标签的 js 文件更危险,我是否错过了一些东西?

最佳答案

没有比通常使用阻塞包含 JavaScript 更危险的了 <script>标签。

但是您应该考虑使用 async 属性,其中is supported在 IE10、Chrome 11、Safari 5 和 FF 3.6 中,或使用 jQuery.getScript 将脚本元素注入(inject)文档中当 DOM 就绪事件被触发时。

关于javascript - 评估服务器 js 文件的危险,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7489824/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com