¿Qué son datos que no son de confianza?

0

Estuve leyendo los conceptos básicos de la prevención XSS en . Pero el tema es bastante abstracto. El término "datos no confiables" se usa a menudo. Todas las reglas recuerdan no insertar datos no asignados en ciertos lugares en el contenido de la página, como:

comentarios HTML

scripts

nombres de atributos

nombres de etiquetas y así sucesivamente ...

Pero, ¿qué son los datos que no son de confianza? P.ej. Estoy enviando datos (nombre de usuario) desde el lado del servidor que se extrajo de la base de datos. ¿Estos datos serán datos confiables?

Por ejemplo, el usuario envía el formulario y envía el valor de entrada de texto o el cliente realiza cualquier solicitud (con parámetros o no). ¿Estos datos no serán confiables?

    
pregunta Max Bender 08.10.2017 - 22:10
fuente

3 respuestas

4

Todo lo que el usuario ingresa (o puede controlar el valor de) no es confiable. Siempre filtrar y validar.

Cualquier cosa generada dinámicamente que pueda consumir datos controlables por el usuario no es confiable. Siempre desinfectar.

Básicamente, cualquier cosa no se considera confiable si no tienes el 100% de control de ella.

  

estoy enviando datos (nombre de usuario) desde el lado del servidor que se ha extraído de la base de datos. ¿Estos datos serán datos confiables?

No, aplique las reglas anteriores y verá si el nombre de usuario original no se validó correctamente y / o la salida no está limpia, el nombre de usuario podría ser <scrip>alert('xss')</script> básicamente un valor xss almacenado o cualquier otro valor que el usuario o El mal actor quiere.

    
respondido por el Trickycm 08.10.2017 - 22:22
fuente
2

Los datos que no son de confianza son los datos que llegan a través de un límite de confianza: en las aplicaciones web que a menudo se refieren a los datos que el usuario tenía el control (datos que provenían del cliente). Pero estos también pueden ser datos que provinieron originalmente de una fuente no confiable (como el nombre de usuario) que puede haber almacenado, o datos provenientes de otro sistema: aún no son de confianza. Los datos se pueden limpiar mediante la validación de la lista blanca, la forma más segura es validar contra una lista fija de valores. Puede validar una lista blanca de caracteres, pero debe ser muy restrictivo ya que a menudo no sabe dónde se van a utilizar los datos; se pueden usar caracteres diferentes para inyecciones HTML, javascript, SQL, OS, REST. >

Es generalmente más sencillo y seguro tratar todos los datos como no confiables, y validarlos y codificarlos correctamente para obtener el resultado correcto.

    
respondido por el Egret 08.10.2017 - 23:44
fuente
0

"datos no confiables" significa cosas diferentes en contextos diferentes.

En el contexto de las reglas owasp se refiere a pasar datos directamente de entrada a salida sin asegurar que la representación de los datos es apropiada para el canal de salida.

En el contexto que proporcionó, los datos pueden haber estado previamente en una forma segura para enviar a la base de datos, pero eso no significa que esté en una forma segura para enviar a un navegador. ¿A un archivo pdf? ¿Para escribir de nuevo en una base de datos?

Aunque en la mayoría de los casos es suficiente saber que los datos están codificados de tal manera que no pueden tener efectos secundarios en el medio de salida, en muchos casos, la "confianza" a menudo depende de la información en los datos, no sólo su representación. Es fácil crear certificados, números de cuenta, dosis ... pero la confianza se trata de garantizar la precisión y la responsabilidad de la información.

    
respondido por el symcbean 29.10.2017 - 15:58
fuente

Lea otras preguntas en las etiquetas