问题背景:在做网站开发时,若用户使用"AAAA"注册用户名,存入数据库后,当用户登录时,输入“aaaa”或"AAaa"等用户名,密码匹配情况下,都能正确登录成功,这无疑是一个很大的漏洞,解决问题的方法就是数据库要区分大小写。网上有多种方法,下面给的两种方法亲测有效。
方法一:
在数据库用户表用户名这一字段若是String类型(一般也不会是其他类型),则修改字段属性,让其默认区分大小写,例如:
alter table 表名 modify column 字段名 varchar(100) binary character set utf-8
如果使用hibernate作为实体类连接数据库,则HQL语言不需要修改。