PHP-解决sql注入攻击的方法

  1. YII框架的做法:


        /**
         * php yii sql Injection
         */
         使用addSearchCondition()方法,替换addCondition()方法
        $criteria = new CDbCriteria();
        $criteria->addSearchCondition('email',$this->email);
        $criteria->addSearchCondition('passWord',md5('cfgdc2013+' . $this->password));
        
    //  $criteria->addCondition("email='".$this->email."'");
    //  $criteria->addCondition("passWord='".md5('cfgdc2013+' . $this->password)."'");
    //  $criteria->addCondition("passWord='". $this->password."'");
        $this->user = Users::model()->findAll($criteria);
  1. mysql做法:

<?php
function check_input($value)
{
	// 去除斜杠
	if (get_magic_quotes_gpc())
  	{
  		$value = stripslashes($value);
  	}
	// 如果不是数字则加引号
	//if (!is_numeric($value))
  	//{
  		$value = mysql_real_escape_string($value);
  	//}
	return $value;
}

$con = mysql_connect("localhost", "hello", "321");
if (!$con)
{
	die('Could not connect: ' . mysql_error());
}

// 进行安全的 SQL
$user = check_input($_POST['user']);
$pwd = check_input($_POST['pwd']);
$sql = "SELECT * FROM users WHERE
user=$user AND password=$pwd";

mysql_query($sql);

mysql_close($con);
?>
  1. sqlit做法:


你可能感兴趣的:(email,password,Criteria)