Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

O que é sanitização suficiente para um URL


"Higienização suficiente" depende completamente de qual ambiente você está falando. A sanitização para MySQL deve ser considerada inteiramente separada da sanitização para a saída da Web, e você deve tratá-los separadamente para evitar muitos problemas.

Higienização para MySQL
  • mysql_real_escape_string() irá limpar um dado e torná-lo seguro para colocar dentro de uma consulta SQL.
  • Qualquer outro tipo de dado malicioso, como tags HTML dentro da string, deve ser absolutamente ignorado. Tentar manipulá-lo aqui o levará a dores de cabeça ao tentar "desmanipulá-lo" mais tarde, depois de tirá-lo do banco de dados. "Dados da web" ruins não podem prejudicar seu banco de dados.

Higienização para saída
  • htmlspecialchars($val) no momento da saída impedirá que quaisquer tags maliciosas sejam renderizadas, porque < e > os caracteres são convertidos em suas representações de entidade e não renderizados como delimitadores de tags.
  • Use o ENT_QUOTES modificador se você estiver produzindo algo que está dentro do atributo citado de um elemento HTML, como <input name="email" value="<?php echo htmlspecialchars($email,ENT_QUOTES); ?>" />

Isso deve ser tudo que você precisa, a menos que você tenha requisitos especiais. strip_tags() realmente não deve ser usado para sanitização, pois pode ser enganado com HTML mal formado. A sanitização é uma meta válida e, se você puder manter seus contextos separados, terá menos problemas com a manipulação de dados entre eles.