public function isLoggedInAdminPage() { $objSess = new Session(); if ($objSess->isSuccess() === SUCCESS) { return true; } return false; }
/** * ログイン情報セッション登録 * * @param integer $member_id メンバーID * @param string $login_id ログインID文字列 * @param integer $authority 権限ID * @param string $login_name ログイン表示名 * @param string $last_login 最終ログイン日時(YYYY/MM/DD HH:ii:ss形式) またはNULL * @return string $sid 設定したセッションのセッションID */ public function lfSetLoginSession($member_id, $login_id, $authority, $login_name, $last_login) { // Session Fixation対策 SessionHelper::regenerateSID(); $objSess = new Session(); // 認証済みの設定 $objSess->SetSession('cert', CERT_STRING); $objSess->SetSession('member_id', $member_id); $objSess->SetSession('login_id', $login_id); $objSess->SetSession('authority', $authority); $objSess->SetSession('login_name', $login_name); $objSess->SetSession('uniqid', $objSess->getUniqId()); if (Utils::isBlank($last_login)) { $objSess->SetSession('last_login', date('Y-m-d H:i:s')); } else { $objSess->SetSession('last_login', $last_login); } return $objSess->GetSID(); }
/** * ログアウト処理 * * @return void */ public function lfDoLogout() { $objSess = new Session(); $objSess->logout(); }
/** * 認証の可否判定 * * @param Session $objSess * @param bool $disp_error * @return bool */ public static function sfIsSuccess(Session $objSess, $disp_error = true) { $ret = $objSess->IsSuccess(); if ($ret != SUCCESS) { if ($disp_error) { // エラーページの表示 static::sfDispError($ret); } return false; } // リファラーチェック(CSRFの暫定的な対策) // 「リファラ無」 の場合はスルー // 「リファラ有」 かつ 「管理画面からの遷移でない」 場合にエラー画面を表示する if (empty($_SERVER['HTTP_REFERER'])) { // TODO 警告表示させる? // sfErrorHeader('>> referrerが無効になっています。'); } else { $domain = static::sfIsHTTPS() ? HTTPS_URL : HTTP_URL; $pattern = sprintf('|^%s.*|', $domain); $referer = $_SERVER['HTTP_REFERER']; // 管理画面から以外の遷移の場合はエラー画面を表示 if (!preg_match($pattern, $referer)) { if ($disp_error) { static::sfDispError(INVALID_MOVE_ERRORR); } return false; } } return true; }