like 字符模糊匹配:

  • % 通配多个字符
  • _  通配单个字符

对特殊字符进行转义:

  • 内容字符串有 % 需要转义 \% 
  • 内容字符串有 _ 需要转义  \_ 
  • 内容字符串有 \ 需要转义 \\

例如:

  •  '张三xxx'           name like 'xxx'  (正常情况)
  •  '张三xxx%'        name like 'xxx\%'
  •  '张三xxx_'         name like 'xxx\_'
  •  '张三xxx\'          name like 'xxx\\'

mysql单引号转义:字符串内容中的单引号,用两个单引号转义

  •  ' I'm Tom '         想表达的内容
  •  ' I''m Tom '        应该写成的形式

sql注入攻击 (用户登录)

通过在sql语句中,注入单引号,来改变sql语句结构
user
id        username  password
007     Jack          123

用户名:   Lucy
密码:     1' or '1'='1

select * from user where username='   Jack   ' and password='   123                   ';
select * from user where username='   Lucy   ' and password='   1' or '1'='1        ';


mysql防止sql注入攻击
用户填写的内容中,mysql数据中所有的单引号,通过java都替换变成两个单引号,能够有效防止sql注入攻击
select * from user where username='   'Lucy'   ' and password='   1'' or ''1''=''1    ';

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐