sql >> Base de Datos >  >> RDS >> Mysql

¿Qué es suficiente desinfección para una URL?

"Suficiente desinfección" depende completamente del entorno del que esté hablando. La desinfección para MySQL debe considerarse totalmente separada de desinfección para la salida web, y debe manejarlos por separado para evitar muchas molestias.

Desinfección para MySQL

  • mysql_real_escape_string() desinfectará una parte de los datos y hará que sea seguro colocarlos dentro de una consulta SQL.
  • Cualquier otro tipo de datos maliciosos, como las etiquetas HTML dentro de la cadena, debe ignorarse por completo. Tratar de manipularlo aquí le provocará dolores de cabeza cuando intente "desmanipularlo" más tarde después de sacarlo de la base de datos. Los "datos web" incorrectos no pueden dañar su base de datos.

Desinfección para salida

  • htmlspecialchars($val) en el momento de la salida evitará que se representen etiquetas maliciosas, porque < y > los caracteres se convierten en sus representaciones de entidad y no se representan como delimitadores de etiquetas.
  • Utilice ENT_QUOTES modificador si está generando algo que está dentro del atributo citado de un elemento HTML, como <input name="email" value="<?php echo htmlspecialchars($email,ENT_QUOTES); ?>" />

Eso debería ser todo lo que necesita, a menos que tenga requisitos especiales. strip_tags() en realidad no debería usarse para la desinfección, ya que se puede engañar con HTML mal formado. La desinfección es un objetivo valioso y, si puede mantener sus contextos separados, tendrá menos problemas con la manipulación de datos entre ellos.