or 1=1 --
or 1=1 --用来非法登录,--其实就是SQL中的注释语句,不过要注意--之后必须有空格才能作为注释使用,否则会有语法错误,所以字符串函数.trim()把字符串的最后一个空格去掉 or 1=1 --也就无效了, .trim()函数可以去掉字符串的前面和后面的空格,但不能去掉字符串中间的空格,所以用下面的方式依然可以登陆进去
or 1=1 -- a 注意a前面必须有空格,--依然发挥了单行注释语句的作用
这些都是用 select * from table where user=...and password ==... 判断用户是否合法的方法的弊端,其中的关键也就两点 1. or 语句 2.--注释语句 。 所以用该换种验证方式,比如先验证用户名是否在数据库中,如果验证通过的话,在数据库中取此用户名的密码,再用取得的值与输入的值进行匹配(.equals)看是否一致。如果输入用户名非法的话是取不到密码的,即为null ,因此也就不能登陆。
人要有明确的目标,并为之脚踏实地的奋斗!
浙公网安备 33010602011771号