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

O urlencode() é bom o suficiente para parar todos os ataques de injeção de SQL no ano de 2011


urlencode() não tem nada para fazer com SQL, por isso faz tanto para evitar a injeção de SQL quanto o querosene para deixar seus hambúrgueres mais deliciosos. Além disso, tudo o que entrar em seu banco de dados terminará codificado em URL, que você terá que decodificar se quiser fazer algo útil com eles depois de recuperar o banco de dados.

Escapar de suas consultas, por outro lado, ajuda seu aplicativo a se proteger contra injeção de SQL e nada mais. Ele não modifica os dados você entra em suas consultas; ele apenas protege suas consultas de ser adulterado. Essa é a ideia da injeção de SQL, e também é por isso que a codificação de URL de seus dados não faz nada para protegê-los. Concedido, ele faz transforme seus apóstrofos ' em %27 , tornando-os inofensivos, mas como mencionado no parágrafo acima, você terá que decodificá-los de volta em apóstrofos para usá-los.

Use a ferramenta certa para o propósito certo. Especialmente no ano de 2011, você deve usar instruções preparadas em vez de escapar manualmente de suas variáveis ​​de consulta e concatenar strings para formar consultas.