Heim  >  Artikel  >  Backend-Entwicklung  >  So vermeiden Sie Codeanalysen, die Benutzer direkt in das PHP-Backend eingeben

So vermeiden Sie Codeanalysen, die Benutzer direkt in das PHP-Backend eingeben

不言
不言Original
2018-06-15 10:43:421402Durchsuche

In diesem Artikel erfahren Sie, wie Sie verhindern können, dass Benutzer Methodeninstanzen direkt im PHP-Backend eingeben.

1) Erstellen Sie einen BaseController-Controller und erben Sie den Controller (alle Vorgänge im Backend müssen erben Sie den BaseController):

In BaseController hinzufügen:

public function checkLogin() { 

        if (Yii::app()->authority->isLogin() == Yii::app()->authority->getStatus('NOTLOGIN')) { 
            $url = $this->createUrl('user/login'); 
            if (Yii::app()->request->isPostRequest && Yii::app()->request->isAjaxRequest) { 
                echo json_encode(array('code' => -101, 'message' => '用户未登录。', 'callback' => 'window.location="' . $url . '";')); 
            } else if (Yii::app()->request->isAjaxRequest) { 
                echo &#39;<script language="javascript">window.location="&#39; . $url . &#39;";</script>&#39;; 
            } else { 
                $this->redirect($url); 
            } 
            exit; 
        } 
        return true; 
    }

Erstellen Sie die Datei Authority.php im Komponentenverzeichnis:

<?php 

/** 
 * 权限检查组件 
 */
class Authority extends CComponent { 
    private $NOTLOGIN = -1; 
    private $FAILED = -2; 
    private $PASS = 1; 

    public function init() { 

    } 

    /** 
     * 检查是否登陆 
     * @return boolean  
     */
    function isLogin() { 
        return isset(Yii::app()->session[&#39;user&#39;]) ? $this->PASS : $this->NOTLOGIN; 
    } 

   
    /** 
     * 获取状态值 
     * @param string $name 
     * @return int  
     */
    public function getStatus($name){ 
        return $this->$name; 
    } 
}

Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, dass es für das Studium aller hilfreich sein wird. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website!

Verwandte Empfehlungen:

Über die Analyse von Fassadenmustern in PHP

So verwenden Sie SMTP in PHP, um Unterstützung zu senden Anhänge E-Mail

Das obige ist der detaillierte Inhalt vonSo vermeiden Sie Codeanalysen, die Benutzer direkt in das PHP-Backend eingeben. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn