Yii框架、登录、SQL注入

Yii框架、登录、SQL注入,sql,login,yii,code-injection,Sql,Login,Yii,Code Injection,最近我收到一封电子邮件,声称他可以通过sql注入更改我的管理员密码。 这是我的密码。它是使用Yii-php框架开发的。有人能看到缺陷吗 public function actionLogin() { $model=new LoginForm; // if it is ajax validation request if(isset($_POST['ajax']) && $_POST['ajax']==='login-form') {

最近我收到一封电子邮件,声称他可以通过sql注入更改我的管理员密码。 这是我的密码。它是使用Yii-php框架开发的。有人能看到缺陷吗

    public function actionLogin()
{

    $model=new LoginForm;

    // if it is ajax validation request
    if(isset($_POST['ajax']) && $_POST['ajax']==='login-form')
    {
        echo CActiveForm::validate($model);
        Yii::app()->end();
    }

    // collect user input data
    if(isset($_POST['LoginForm']))
    {
        $model->attributes=$_POST['LoginForm'];
        // validate user input and redirect to the previous page if valid
        if($model->validate() && $model->login())
            $this->redirect(Yii::app()->user->returnUrl);
    }
    // display the login form
    $this->render('login',array('model'=>$model));
}

在创建sql查询的每个地方,都必须将所有外部变量与sql变量绑定,这将消除sql注入的可能性。

更改密码可以通过“忘记密码”完成或者类似的。您需要发布您的登录信息,可能还有您的用户身份模型,然后我们才能看到可能被附加的部分。此人是否真的改变了什么?可能只是有人想吓唬你。如果是你认识的人,请他们澄清他们在说什么(例如,他们认为哪个页面容易受到攻击,等等)。除此之外,我们需要看到更多的登录代码,而不仅仅是操作。我后来发现我的关键字搜索操作中有一个缺陷。我忘了转义关键字。Yii默认情况下对所有查询都这样做,除非他在做一些手动ActiveRecord内部操作。