Por lo que sé, se considera una mala práctica eval()
objetos JSON en JavaScript, debido a la seguridad. Puedo entender esta preocupación si el JSON proviene de otro servidor.¿Por qué no eval() JSON?
Pero si el JSON es proporcionado por mi propio servidor y se crea usando PHP json_encode
(supongamos que no tiene errores), ¿es legítimo simplemente usar eval()
para leer el JSON en JS o hay algún problema de seguridad I Actualmente no se puede pensar?
Realmente no quiero ocuparme de cargar dinámicamente un analizador JSON y me alegraría simplemente usar eval()
.
PD: obviamente usaré el objeto nativo JSON
si está disponible, pero quiero volver a eval()
para IE/Opera.
JavaScript 'eval' evaluará * cualquier código * JavaScript y no solo el pequeño subconjunto que es igual a JSON. – Gumbo
Por supuesto que es bueno codificar sus datos, pero no va a mantener la misma base de código para siempre (con suerte), eventualmente alguien más tendrá que mantenerla, y ¿qué pasa si hay una nueva parte de una corrección de error que alguien puso y no llama al método de codificación, o lo llama, pero en el lugar equivocado, y abre una vulnerabilidad de seguridad, tener la segunda red de seguridad allí ya que un repliegue podría ser la diferencia entre un anuncio de PR embarazoso), costosos litigios y consecuencias legales, versus un simple parche de código para arreglar la red de seguridad de nivel medio. – BrainSlugs83
La otra cosa a tener en cuenta es también la facilidad de mantenimiento: acatar normas bien conocidas facilitará la transición de la propiedad del código a otro desarrollador/equipo, etc. cuando llegue el momento, que es bastante poderoso por sí mismo, pero para poner eso en el contexto de la seguridad: los desarrolladores que saben lo que hace su código y cómo funciona (porque usa las mejores prácticas estandarizadas para su nicho particular) serán menos propensos a poner código que derive las cosas y agrega nuevos fallos de seguridad por accidente, etc. – BrainSlugs83