Confiando en los datos de una API

0

Recientemente leí un artículo de seguridad interesante que, entre otras recomendaciones, los datos sugeridos desde una API externa deben tratarse como datos ingresados por el usuario.

Bueno, por supuesto, eso tiene mucho sentido. Pero, ¿hay alguien que esté limpiando los datos de empresas bien conocidas? ¿Existe un riesgo real?

¿Con qué tipo de cosas se deben mitigar, solo las inyecciones de SQL y las inyecciones de código? ¿Hay alguna forma de que el código del lado del servidor pueda ser manipulado si los datos no están limpios?

    
pregunta Imag1ne 19.01.2016 - 13:23
fuente

1 respuesta

1

Debe desinfectarlo como si fueran datos ingresados por el usuario. No necesita ser malvado por el proveedor de la API o también podría ser culpa del usuario al proporcionar los datos al proveedor de la API. ¿Quién dice que el proveedor de API limpió los datos? ¿Quién dice que el proveedor de API necesita sanearse de la misma manera que usted? Tal vez el carácter especial sea válido para él.

Un "'" podría ser un carácter válido para el proveedor de la API y el nombre de una persona podría llamarse "Robert'); estudiantes de DROP TABLE; -" y se le inyectó SQL sin las malas intenciones del proveedor de la API pero por un madre nombrando así a su hijo.

En otro ejemplo, obtiene datos de un proveedor de API y los muestra en su sitio web y no los desactiva: puede contener un carácter especial que rompa su página web o todo el sitio web. Puede contener código malvado de javascript / html que puede infectar la máquina del usuario con un virus. Puede contener código malvado de javascript / html que tiene los mismos derechos que el usuario que lo está viendo. Un administrador registrado ve la página y el javascript elimina o manipula el sitio web / crea un nuevo usuario con plataformas de administración / muchas más cosas. Dependiendo de cómo se almacenen / procesen los datos de la API, puede leer / escribir archivos relevantes de seguridad en el sistema o crear / cambiar archivos ejecutados en el servidor. Por ejemplo, se podría crear un archivo que sea ejecutado por el servidor web en lugar de enviarlo directamente al cliente. Así que siempre desengrasar datos de terceros.

Edite para asegurarse de que no haya malentendidos: estoy hablando de datos en el sentido de representación de información, no de información en sí. La información sería, que una actriz es la madre de Robert. La representación de la información podría ser

  

{actriz: "La madre de Robert"}

Así que asegúrese de que estos datos no causen una inyección de SQL a su lado. Si confías en la información de que la actriz era realmente la madre de Robert es otro tema.

    
respondido por el H. Idden 19.01.2016 - 14:24
fuente

Lea otras preguntas en las etiquetas