都说eval()是不安全的,还有new Function()也是不安全的,啥脚本注入来着。但是该如何解决这种不安全的问题呢?我搜索了一下,貌似是啥脚本库之类的,但是大部分都是在分析他们的使用方法。所以请哪位研究过的大神,分析下该如何解决安全问题,或者说提供个脚本库参考下,^_^
3 回答

有只小跳蛙
TA贡献1824条经验 获得超8个赞
首先感谢你的关注,至于如何不安全,我也没有见过,但是不管是网上还是哪里,都会有所耳闻,以我个人的理解应该是这样的。
比如说以下是从php所提供的接口中获取的数据信息。
var jsonStr = '{"a":1,"b":2,"c":function(){alert(1);}()}';
其中的值都是用户提供的信息。
为了追加到页面,显示为用户,那么得转换成json形式。
var json = eval("("+jsonStr+")"); //或者 var json = new Function("return"+jsonStr)();
结果是页面会alert(1);
换句话说,如果那个函数中不是alert(1);是打开某个链接,或者运行啥程序之类的,当然具体的操作我是不懂了,只是类似的。这样就感觉会不安全了,页面可以有用户操作了。
以上是我的理解。
添加回答
举报
0/150
提交
取消