function isLoggedInAdminPage() { $objSess = new SC_Session(); if ($objSess->isSuccess() === SUCCESS) { return true; } return false; }
/** * 認証の可否判定 * * @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; }
/** * Page のプロセス. * * @return void */ function process() { $objSess = new SC_Session(); $objSess->logout(); $this->sendRedirect($this->getLocation(URL_DIR . "admin/index.php")); }