0

最近、SQLインジェクションで管理者パスワードを変更できるとのメールが届きました。これが私のコードです。Yiiphpフレームワークを使用して開発されています。誰かが欠陥を見ることができますか?

    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));
}
4

1 に答える 1

2

SQLクエリを作成するすべての場所で、すべての外部変数をSQL変数にバインドする必要があります。これにより、SQLインジェクションの可能性がなくなります。

于 2012-04-16T05:19:09.620 に答える