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

bind_param() necessário apenas em valores inseridos pelo usuário ou todos?


Tecnicamente, você não corre risco se não preparar dados que não venham da entrada do usuário. No entanto, é altamente recomendável fazê-lo por alguns motivos:
  1. Se você esquecer de preparar os dados de entrada do usuário em algum lugar, é possível que esse usuário tenha injetado algo diverso em uma linha de dados que você não esperava que fosse uma entrada do usuário.
  2. É uma boa prática repetir o que você está fazendo para manter seu servidor seguro. Se você começar a misturar tudo, é muito mais provável que esqueça de preparar os dados onde realmente é necessário fazê-lo.
  3. Preparar seus dados não é apenas impedir a injeção de SQL de invasores. Também evitará alguns problemas de banco de dados caso você crie acidentalmente um bug em seu código. Por exemplo:

Em algum lugar em seu código, você tem um sistema de log que adiciona um log de erros ao seu banco de dados. A cadeia seria:


Esta string é gerada pelo seu script. Portanto, você não o prepara. No entanto, as aspas dentro dessa string causarão erros com seu banco de dados que poderiam ter sido evitados se você o preparasse de qualquer maneira.