Heim > Artikel > Backend-Entwicklung > So vermeiden Sie Codeanalysen, die Benutzer direkt in das PHP-Backend eingeben
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 '<script language="javascript">window.location="' . $url . '";</script>'; } 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['user']) ? $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!