Est mysql_real_escape_string()
con sprintf
nécessaire uniquement à la page de connexion ou à chaque mysql_query
après la connexion, pour prévenir l'injection SQL ?
Réponses
Trop de publicités?Vous devriez utiliser mysql_real_escape_string() chaque fois que vous insérez des données postées par l'utilisateur dans une requête, ou utiliser un wrapper de base de données comme AOP qui peut faire des déclarations préparées. Ce serait mieux, car ils font le travail de désinfection pour vous.
Si vous travaillez sur la sécurité globale de votre site, c'est une excellente chose et c'est absolument nécessaire. Si vous cherchez les raisons pour lesquelles votre site a été piraté, je doute qu'il s'agisse d'une injection SQL, car c'est votre code HTML qui a été touché (du moins, c'est ce que je pensais, mais je peux me tromper). Cela ne serait possible que si votre mot de passe FTP était stocké quelque part dans la base de données.
En cualquier que vous acceptez l'entrée de l'utilisateur, vous devez utiliser la fonction mysqli_real_escape_string
sur elle avant de l'envoyer à la base de données. C'est une bonne idée d'utiliser trim()
sur l'entrée également.