要对$_POST[username]和$_POST[password]和值进行过滤!
比如如果$_POST[username]的值等于"abc' or 1=1 "
_POST[password]的值等 于"abc' or 1=1 "

解决方案 »

  1.   

    $_POST[username]和$_POST[password]全部md5加密。
      

  2.   

    简单的来讲,就是所有进入sql语句处理的值,不应该直接将用户输入的值放入,
    应该对其进行检查,看是否有不安全内容.---这就是所谓过滤什么是不安全内容自己可以决定,比如说,你可以将所有含'mysql'的字符都认定为
    不安全.....等等等等了,你需要自己想
      

  3.   

    这样可以避免 //  ;引起的漏洞$query="SELECT FROM table WHERE  password='$_POST[password]' AND user='$_POST[username]'";
      

  4.   

    post或者get得到的数据一定要经过处理,否则别直接使用
    可以改成
    $query="SELECT FROM table WHERE  password='".addslahes($_POST[password])."' AND user='".addslahes($_POST[username])."'";
      

  5.   

    如果是mysql,就把'替换为\'
    如果是mssql,就把'替换为''