De quoi ai-je besoin pour échapper lors de l'envoi d'une requête ?

Lorsque vous exécutez une requête SQL, vous devez nettoyer vos chaînes ou les utilisateurs peuvent exécuter du SQL malveillant sur votre site Web.

J'ai généralement juste une fonction escape_string(blah), qui :

  • Remplace les échappements () par des doubles échappements (\).
  • Remplace les guillemets simples (') par un guillemet simple échappé (').

Est-ce suffisant ? Y a-t-il un trou dans mon code ? Existe-t-il une bibliothèque qui peut le faire rapidement et de manière fiable pour moi ?

J'aimerais voir des solutions élégantes en Perl, Java et PHP.

请先 登录 后评论

5 réponses

GateKiller

J'échapperais également aux commentaires (double tiret)

--
请先 登录 后评论
Karl Seguin

Il vaut mieux utiliser des instructions préparées avec des espaces réservés. Utilisez-vous PHP, .NET... de toute façon, les instructions préparées fourniront plus de sécurité, mais je pourrais fournir un exemple.

请先 登录 后评论
Steve Tranby

Utilisez des requêtes préparées/paramétrées !

请先 登录 后评论
BCS

l'API MySQL C a son propre mysql_escape_string(). L'utiliser ou son équivalent serait préférable.

请先 登录 后评论
Community

Utilisez des déclarations préparées.

请先 登录 后评论