¿Es seguro permitir nombres de campos no confiables en JSON?

5

Al formar una estructura de datos JSON, ¿existen riesgos de seguridad al permitir que un atacante elija los nombres de los campos? Usted puede asumir que serán citados correctamente. Me gustaría saber si permitir que los nombres de los atributos sean elegidos por el atacante representa un riesgo adicional al permitir que los valores de los atributos sean elegidos por el atacante.

Ejemplo: podría tener un valor JSON como el siguiente:

{
  "name": "me",
  "interests": "sewing",
  "comment": "hello world!"
}

Suponga que tanto los nombres de atributo ( name , interests , comment ) como los valores de atributo ( me , sewing , hello world! ) pueden ser elegidos libremente por el atacante. También asuma que están correctamente citados (por ejemplo, siempre están rodeados por comillas dobles; escapamos de barras invertidas y signos de comillas, para evitar salirse de las comillas).

¿Hay algo de lo que deba preocuparme que sea específico para los nombres de atributo elegidos por el atacante?

¿Debo preocuparme por que un atacante elija un nombre de atributo como toString o valueOf o length o 0 ? ¿O nombres que comienzan con un guión bajo?

    
pregunta D.W. 14.11.2011 - 01:55
fuente

1 respuesta

6

No hay riesgo de seguridad inherente .

Por supuesto, usted permanece a merced de la seguridad de la biblioteca con la que está analizando el JSON, y permanece a merced de la seguridad de la aplicación que hará uso del JSON analizado.

    
respondido por el yfeldblum 14.11.2011 - 12:58
fuente

Lea otras preguntas en las etiquetas