ASP中的变量,关键字不区分大小写,这谁都知道。但在有些地方又是区分大小的。
在下面这种密码验证时就不区分大小写,这样就增加了ASP不安全因素:
"select * from admin where username='"&username&"'and password='"&password&"'"
这时的 password 的值如果为 abc 那么输入 ABC 同样可以验证通过(username用户名同样也是这样,不过这个可以“谅解”,有时用户名就不能区分大小写,防止用户名好像重名的现象)!
解决这个问题的比较简单的方法是用另一种ASP中区分大小写的情况:
先查询出 username 的记录项
"select * from admin where username='"&username&"'"
再用 if rs("password")=password then 判断(这里的rs是记录集),这样的判断又是区分大小写的(这个对于习惯ASP不区分大小的人很可能会出错,而又找不到错在哪,说自己呢,呵呵)。
再一种方法是用md5函数,这样同时还可以加强数据库的安全。另外用replace方法是也是区分大小写的!