mybatis为何能防止sql注入
1.mybatis为何能防止sql注入?
mybatis可以通过#{xxx}的方式进行预编译sql语句($(xxx)只是将字符串替换,没有预编译)
2.预编译为何能防止sql注入?
一条sql语句的执行需要经过语义解析,制定执行计划,执行并返回结果
预编译后的语句将命令和参数分离,以?代替参数,在编译时直接进行执行计划,不会再进行语义分析,参数输入后替换?,直接查询输入的字符串,而不会再分析语句语法
3.如何进行sql注入
用and、or、like、“”、‘’、1=1、<>、等特殊符号,以及猜表名、猜字段名
4.如何预防sql注入
提高数据库权限管理,只有管理员能进行敏感操作
过滤用户输入
使用专业的漏洞扫描工具
参数化sql语句