Me pregunto cuándo es la mejor manera de manejar las entradas de usuario que escapan.
Dos opciones vienen a mi mente
1) El usuario envía datos al servidor, lo evitamos y luego lo almacenamos en la base de datos 2) almacenamos los datos tal como están y los evitamos cuando enviamos datos al usuario.
A mí me parece mucho más fácil escapar y luego guardar los datos en la base de datos, pero supongamos que alguien encuentra flujo en nuestro sitio web y se las arregla para evitar el escape. Tenemos un problema de encontrar todos los datos que almacenamos en la base de datos sin escaparse
por otro lado, si solo almacenamos los datos tal como están, pero escapamos una vez que los enviamos al usuario, incluso si alguien encuentra flujo en nuestro sitio web, todo lo que tenemos que hacer es corregir un error ya que nuestro sistema ya asume que los datos se guardan en la base de datos en no escapado.
Aunque el segundo enfoque parece más fácil, parece mucho más propenso al error. Supongamos que generamos HTML en el servidor y lo enviamos al usuario y luego decidimos cambiar a solo enviar contenido al usuario a través de ajax, es fácil olvidar que debemos escapar de todos los datos antes de enviarlo al usuario o implementar una nueva API, o algo así. tercero.
Así que me pregunto, ¿cuál es la mejor manera de manejar esto?