>  기사  >  백엔드 개발  >  PHP 백엔드에서 사용자가 직접 입력하는 코드 분석을 피하는 방법

PHP 백엔드에서 사용자가 직접 입력하는 코드 분석을 피하는 방법

不言
不言원래의
2018-06-15 10:43:421401검색

이 글에서는 사용자가 PHP 백그라운드에서 메소드 인스턴스를 직접 입력하는 것을 방지하는 방법을 소개합니다. 필요한 친구가 참고할 수 있습니다.

1) BaseController 컨트롤러를 생성하고 Controller에서 상속합니다(백그라운드의 모든 작업은 BaseController를 상속해야 함).

BaseController에 추가:

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

컴포넌트 디렉터리에 Authority.php 파일을 생성합니다:

<?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; 
    } 
}

위 내용은 모두의 학습에 도움이 되기를 바랍니다. PHP 중국어 웹사이트로!

관련 권장 사항:

PHP의 외관 패턴 분석 정보

php에서 smtp를 사용하여 첨부 파일을 지원하는 이메일을 보내는 방법

위 내용은 PHP 백엔드에서 사용자가 직접 입력하는 코드 분석을 피하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.