举例:
select admin from user where username='admin' or 'a'='a' and passwd=''or 'a'='a'
防止 SQL 注入, 使用预编译语句是预防 SQL 注入的最佳方式, 如
select admin from user where username=? And password=?
使用预编译的 SQL 语句语义不会发生改变, 在 SQL 语句中, 变量用问号? 表示。 像上面例子中, username 变量传递的'admin' or
'a'='a' 参数, 也只会当作 username 字符串来解释查询, 从根本上杜绝了 SQL 注入攻击的发生。
注意: 使用 mybaits 时 mapper 中#方式能够很大程度防止 sql 注入, $方式无法防止 sql 注入.
来源:https://www.cnblogs.com/WANGweiNote/p/12653517.html