mybatis为何能防止sql注入

1.mybatis为何能防止sql注入?

   mybatis可以通过#{xxx}的方式进行预编译sql语句($(xxx)只是将字符串替换,没有预编译)

2.预编译为何能防止sql注入?

   一条sql语句的执行需要经过语义解析,制定执行计划,执行并返回结果

   预编译后的语句将命令和参数分离,以?代替参数,在编译时直接进行执行计划,不会再进行语义分析,参数输入后替换?,直接查询输入的字符串,而不会再分析语句语法

3.如何进行sql注入

   用and、or、like、“”、‘’、1=1、<>、等特殊符号,以及猜表名、猜字段名

4.如何预防sql注入

   提高数据库权限管理,只有管理员能进行敏感操作

   过滤用户输入

   使用专业的漏洞扫描工具

   参数化sql语句

posted @ 2020-11-04 00:34  s459165447  阅读(351)  评论(0编辑  收藏  举报