Análisis de JSON "relajado" sin evaluación riesgosa
JSON, un formato de intercambio de datos ampliamente utilizado, requiere una sintaxis estricta con claves entre comillas. Sin embargo, ciertas aplicaciones pueden encontrar JSON "relajado" con claves sin comillas. Se desaconseja analizar dichos datos usando eval debido a riesgos de seguridad.
Evitar Evil Eval
Una alternativa a eval es un enfoque basado en expresiones regulares que desinfecta el JSON antes de analizar . Este método escanea la cadena JSON y reemplaza las claves sin comillas por otras entre comillas, lo que garantiza el cumplimiento de la sintaxis JSON estándar sin comprometer la seguridad.
Ejemplo de implementación
Para implementar este enfoque, sigue estos pasos:
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);
Conclusión
El uso de expresiones regulares para desinfectar JSON relajado permite un análisis fluido y al mismo tiempo evita los posibles riesgos de seguridad asociados con eval.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3