Ton*_*ark 7 javascript security firefox eval
Mozilla的内容安全策略不允许使用javascript eval函数以及内联脚本.他们声称所有eval实例都可以被另一个(希望更安全)的功能所取代.我同意在大多数情况下,Javascript eval可以被替换,但我不确定是否可以替换所有情况.
我的问题是双重的:
pim*_*vdb 14
可以替代的最常见用途是以下用途.我肯定会先使用这些.
访问动态属性
使用: obj[keyAsVariable]
不要用 eval('obj.' + keyAsVariable)
解析JSON
好用 JSON.parse(data)
不要用 eval('(' + data + ')')
计算用户输入
使用某个库
不要用 eval(input)
如果确实有必要,您还可以将脚本发送到服务器,该服务器只需将其回送,您可以将其作为脚本标记请求.它不会使用eval但仍会执行它.它不安全,因为它通过互联网发送两次.
var s = document.createElement('script')
s.src = 'request_script?data=' + data;
document.getElementsByTagName('head')[0].appendChild(s);
request_script可以是用PHP实现的文件,如下所示.同样,这是一种不好的做法,但却是一种绕行的通用方式eval.
<?
echo $_GET['data'];
?>
你可以说这也会自动用"否"回答你的第二个问题.
| 归档时间: | 
 | 
| 查看次数: | 11772 次 | 
| 最近记录: |