在没有风险评估的情况下解析“轻松”的 JSON
JSON 是一种广泛使用的数据交换格式,需要带引号的键的严格语法。但是,某些应用程序可能会遇到带有不带引号的键的“宽松”JSON。由于安全风险,不鼓励使用 eval 解析此类数据。
避免邪恶的 Eval
eval 的一种替代方法是基于正则表达式的方法,该方法在解析之前清理 JSON 。此方法扫描 JSON 字符串并用带引号的键替换任何未加引号的键,确保符合标准 JSON 语法而不影响安全性。
示例实现
要实现此方法,请按照下列步骤操作:
var badJson = "{muh: 2}";
// Sanitize the JSON using regular expression replace
var correctJson = badJson.replace(/(['"])?([a-z0-9A-Z_] )(['"])?:/g, '"$2": ');
// Parse the sanitized JSON using JSON.parse
var obj = JSON.parse(correctJson);
结论
使用正则表达式来清理宽松的 JSON 可以实现无缝解析,同时避免与 eval 相关的潜在安全风险。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3