Maison >php教程 >PHP开发 >Une brève discussion sur la différence entre # et $ dans mybatis

Une brève discussion sur la différence entre # et $ dans mybatis

高洛峰
高洛峰original
2017-01-05 17:22:561431parcourir

1. #Traitez les données entrantes comme une chaîne et ajoutez des guillemets doubles aux données entrantes automatiquement. Par exemple : trier par #user_id#, si la valeur transmise est 111, alors la valeur analysée dans SQL est triée par "111". Si la valeur transmise est id, le SQL analysé est trié par "id". 🎜>

2. $ Affichez directement les données entrantes et générez-les en SQL. Par exemple : order by $user_id$, si la valeur transmise est 111, alors la valeur analysée dans SQL est order by user_id. Si la valeur transmise est id, le sql analysé est ordonné par id.  

3. #Method peut empêcher l'injection SQL dans une large mesure. ​

4. La méthode $ ne peut pas empêcher l'injection SQL.

5. La méthode $ est généralement utilisée pour transmettre des objets de base de données, tels que des noms de tables

6. En général, n'utilisez pas $ si vous pouvez utiliser #.

<.>Tri MyBatis Lorsque vous utilisez l'ordre par paramètres dynamiques, vous devez faire attention à l'utilisation de $ au lieu du remplacement de chaîne #

Par défaut, l'utilisation de la syntaxe de format #{} entraînera MyBatis. pour créer des attributs d'instruction préparée et définir une valeur sûre (telle que ?) par rapport à celle-ci. C'est sûr, rapide et préféré, parfois vous souhaitez simplement insérer une chaîne inchangée directement dans l'instruction SQL. Par exemple, comme ORDER BY, vous pouvez l'utiliser comme ceci : ORDER BY ${columnName}

Ici, MyBatis ne modifiera ni n'échappera la chaîne.

Important : Il est dangereux d'accepter la sortie de l'utilisateur et de la fournir sous forme de chaîne immuable dans l'instruction. Cela conduit à des attaques potentielles par injection SQL, vous ne devez donc pas autoriser les utilisateurs à saisir ces champs, ni généralement à y échapper et à les vérifier vous-même.

Ce qui précède est l'intégralité du contenu de la brève discussion de l'éditeur sur la différence entre # et $ dans mybatis. J'espère que tout le monde soutiendra le site Web PHP chinois ~

Plus de brève discussion sur la différence entre. # et $ dans mybatis Pour des articles connexes sur la différence entre # et $, veuillez faire attention au site Web PHP chinois !

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn