Si el contenido de la base de datos se vuelve a limpiar

1

Supongamos que guardo contenido en la base de datos después de limpiarlo. ¿Sigue existiendo la necesidad de volver a limpiarlo al recuperarlo? Si es así, ¿por qué?

    
pregunta VarunAgw 14.08.2014 - 17:31
fuente

1 respuesta

4

"Desinfectar", por sí mismo, no tiene sentido. No hay tal cosa como "datos sucios" en lugar de "datos limpios". Cuando la gente piensa que los datos están "desinfectados", realmente quieren decir "datos que se verificaron en un formato adecuado para un procesamiento específico ". Por ejemplo, si el propósito de los datos es incrustarlos en alguna declaración SQL, entonces el "saneamiento" de los datos implica asegurarse de que no contenga ninguno de los caracteres que el analizador de SQL considerará como especiales (generalmente, sin comillas).

Una palabra mejor es validation . Siempre que deba usar algunos datos y los datos sean "potencialmente hostiles" (podrían haber sido creados en algún punto, más o menos directamente, por un atacante para desencadenar comportamientos no deseados en su código), entonces los datos deben ser verificados Para ser apropiado para el procesamiento previsto. Si "guardó el contenido en la base de datos después de sanearlo", es probable que se haya asegurado de que los datos estuvieran en el formato correcto para almacenarlos en la base de datos . Dependiendo de los pasos de validación necesarios para garantizar un almacenamiento seguro y lo que pretende hacer con los datos cuando los recupere, esto puede o no ser suficiente.

Por ejemplo, supongamos que el elemento de datos se obtiene como algunos caracteres del usuario y debería almacenarse en la base de datos. El elemento de datos se supone que es un número. Sin embargo, a la base de datos de almacenamiento solo le importan los "caracteres especiales" y, por lo tanto, no ve ningún problema en el almacenamiento de "BozoWasThere" en la base de datos. En ese sentido, la cadena fue saneada (y el almacenamiento estuvo muy bien) pero aún no es un número, por lo que esto justificaría una sanidad adicional después de recuperarla.

El concepto de "datos desinfectados" es una gran fuente de confusión. Es un mantra que muchos desarrolladores pronuncian ritualmente ("¡desinfecten todas las cosas!") Porque les da la sensación de que hicieron algo con respecto a la seguridad, sin tener que realizar la acción más inconveniente conocida como pensamiento . A largo plazo, esto no funciona bien.

    
respondido por el Tom Leek 14.08.2014 - 18:04
fuente

Lea otras preguntas en las etiquetas