Esempio n. 1
0
 function isLoggedInAdminPage()
 {
     $objSess = new SC_Session();
     if ($objSess->isSuccess() === SUCCESS) {
         return true;
     }
     return false;
 }
Esempio n. 2
0
 /**
  * 認証の可否判定
  *
  * @param SC_Session $objSess
  * @param bool $disp_error
  * @return bool
  */
 public static function sfIsSuccess(SC_Session $objSess, $disp_error = true)
 {
     $ret = $objSess->IsSuccess();
     if ($ret != SUCCESS) {
         if ($disp_error) {
             // エラーページの表示
             SC_Utils_Ex::sfDispError($ret);
         }
         return false;
     }
     // リファラーチェック(CSRFの暫定的な対策)
     // 「リファラ無」 の場合はスルー
     // 「リファラ有」 かつ 「管理画面からの遷移でない」 場合にエラー画面を表示する
     if (empty($_SERVER['HTTP_REFERER'])) {
         // TODO 警告表示させる?
         // sfErrorHeader('>> referrerが無効になっています。');
     } else {
         $domain = SC_Utils_Ex::sfIsHTTPS() ? HTTPS_URL : HTTP_URL;
         $pattern = sprintf('|^%s.*|', $domain);
         $referer = $_SERVER['HTTP_REFERER'];
         // 管理画面から以外の遷移の場合はエラー画面を表示
         if (!preg_match($pattern, $referer)) {
             if ($disp_error) {
                 SC_Utils_Ex::sfDispError(INVALID_MOVE_ERRORR);
             }
             return false;
         }
     }
     return true;
 }
Esempio n. 3
0
 /**
  * Page のプロセス.
  *
  * @return void
  */
 function process()
 {
     $objSess = new SC_Session();
     $objSess->logout();
     $this->sendRedirect($this->getLocation(URL_DIR . "admin/index.php"));
 }