javascript - 将 eval() 转换为 JSON.parse

标签 javascript json eval xss code-injection

我正在经历使用 eval() 对于基于 XSS 的攻击的不良影响。我需要保护一段代码免受可能的 XSS 攻击,我猜 JSON.parse() 应该可以正常工作。

var request = new XMLHttpRequest(); 
var url = encDataPath + "/jcr:content/metadata.json?_charset_=utf-8";
url = Granite.HTTP.externalize(url);
request.open("GET", url ,false);
request.send(null);

var jsonData =eval("(" + request.responseText + ")"); // <-- here
var assetTitle = jsonData["dc:title"];
var mimetype = jsonData["dc:format"];

有人可以建议我如何将 eval() (对于 jsonData)更改为 JSON.parse?

最佳答案

只需将该行替换为:

var jsonData = JSON.parse(request.responseText);

只要响应是正确的 JSON,这应该就可以工作。

关于javascript - 将 eval() 转换为 JSON.parse,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43342911/

相关文章:

javascript - 在 iframe 中隐藏滚动,当 iframe 在 IE 中为空时

javascript - 如何通过 WebRTC 轨道发送音频和视频?

javascript - 能否使外部 .js 文件仅在一个域上工作?

JSON 到 Firebase

java - 反序列化 jackson 中的对象引用

json - 如何在 NSMutableArray 中存储 JSON 字典响应

jquery - 如何使用 jQuery 评估变量

c# - 在单个 FormView C# 中实现不同的字体样式

r - 在多个表达式上使用 eval(substitute())

javascript - 如何找到大图像的有损尺寸