第一:替换单引号,即把所有单独出现的单引号改成两个单引号,防止攻击者修改SQL 命令的含义。再来看前面的例子,“SELECT * from Users WHERE login = or 1=1 AND password = or 1=1” 显然会得到与“SELECT * from Users WHERE login = or 1=1 AND password = or 1=1” 不同的结果。
第二:删除用户输入内容中的所有连字符,防止攻击者构造出类如“SELECT * from Users WHERE login = mas -- AND password =” 之类的查询,因为这类查询的后半部分已经被注释掉,不再有效,攻击者只要知道一个合法的用户登录名称,根本不需要知道用户的密码就可以顺利获得访问权 限。