Dam*_*ien 18 javascript security jquery json eval
快速问题.JavaScript中的Eval是不安全的,不是吗?我有一个JSON对象作为字符串,我需要把它变成一个实际的对象,所以我可以获取数据:
function PopulateSeriesFields(result)
{
data = eval('(' + result + ')');
var myFakeExample = data.exampleType
}
Run Code Online (Sandbox Code Playgroud)
如果它有助于我使用jQuery中的$ .ajax方法.
谢谢
Ren*_*soo 26
好吧,安全与否,当你使用jQuery时,你最好使用$ .getJSON()方法,而不是$ .ajax():
$.getJSON(url, function(data){
alert(data.exampleType);
});
Run Code Online (Sandbox Code Playgroud)
eval()
当您只与自己的服务器通信时,尤其是当您在服务器端使用良好的JSON库时,通常认为JSON解析是安全的,这可以保证生成的JSON不会包含任何令人讨厌的东西.
即使是JSON的作者Douglas Crockford也表示eval()
,除了解析JSON之外,你不应该在代码中的任何地方使用它.请参阅JavaScript:The Good Parts一书中的相应部分
如果你不相信来源,那么你是正确的... eval是不安全的.它可以用于将代码注入您的页面.
查看此链接以获得更安全的替代方案:
该页面解释了为什么eval不安全,并提供了指向页面底部的JSON解析器的链接.
归档时间: |
|
查看次数: |
44652 次 |
最近记录: |