Cet article présente les informations pertinentes de Mybatis pour empêcher l'injection SQL à travers des exemples. Il est très bon et a une valeur de référence. Les amis dans le besoin peuvent s'y référer
L'injection SQL est familière à tout le monde et est courante. La méthode d'attaque consiste à ce que l'attaquant saisisse des fragments SQL étranges dans les informations de formulaire ou l'URL de l'interface, tels que des instructions telles que "or '1'='1'", qui peuvent envahir les applications avec une vérification insuffisante des paramètres. Par conséquent, nous devons travailler sur nos applications pour empêcher de telles attaques. Dans certaines applications hautement sécurisées, telles que les logiciels bancaires, la méthode consistant à remplacer toutes les instructions SQL par des procédures stockées est souvent utilisée pour empêcher l'injection SQL. Il s'agit bien sûr d'une méthode très sûre, mais dans notre développement quotidien, elle peut ne pas être nécessaire. pour une approche aussi rigide.
En tant que framework de couche de persistance semi-automatique, le framework mybatis nous oblige à écrire manuellement ses instructions SQL nous-mêmes. Bien sûr, nous devons empêcher l'injection SQL pour le moment. En fait, le sql de Mybatis est une structure avec fonction "entrée + sortie", similaire à une fonction, comme suit :
<select id="getBlogById" resultType="Blog" parameterType=”int”> select id,title,author,content from blog where id=#{id} </select>
Ici, paramètreType indique le type du paramètre d'entrée , resultType indique le type de paramètre de sortie. En réponse à ce qui précède, si l’on veut éviter l’injection SQL, il est naturel de travailler sur les paramètres d’entrée. La partie en surbrillance dans le code ci-dessus est la partie où les paramètres d'entrée sont épissés dans SQL. Après avoir transmis les paramètres, imprimez l'instruction SQL exécutée et vous verrez que le SQL ressemble à ceci :
<🎜. >select id,title,author,content from blog where id = ?
<select id="orderBlog" resultType="Blog" parameterType=”map”> select id,title,author,content from blog order by ${orderParam} </select>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!