2

私は、一般ユーザーと管理ユーザーの両方に1つの認証システムを備えたサイトを構築しています(興味のある人はCodeIgniterとTank Authを使用します)。これらは、プロファイルの資格情報に基づいて区別されます。(これは安全なアプローチですか?)

私の質問は、ユーザーが表示する資格情報を持っていない領域にアクセスする場合、アクセスを制限するためにどのPHP機能を使用する必要があるかということです。私の考えは、「リダイレクト」または「終了」機能のいずれかです。最も安全なアプローチは何ですか?

4

2 に答える 2

5

両方を使う:

header("Location: http://your_login_page");
exit();

exit()は、スクリプトの残りの部分が処理されないようにし、header()はユーザーを便利な場所に送ります。(「アイドルの手は悪魔の工房です...」)

于 2011-06-13T17:12:56.620 に答える
1

ええと、TankAuthはすでにそれを処理しているはずだと思いますね。(私はそのライブラリを使用したことはありません。IonAuthが使用し、認証システムに必須であると想定しました)。通常、プレーンなPHPでは、次のことを実行することをお勧めします。

header("Location: your/url");
exit();

ログに記録されたステータスを確認した後にリダイレクトする場合(たとえば、$ _ SESSION、$ _ SESSION + Cookieを介して)。Exit()は、ヘッダーが失敗した場合にスクリプトが続行されないようにして、不要なコードを表示します。

Codeingiterには、redirect()関数が組み込まれています(ユーザーマニュアルでここを確認してください)。次のように使用できます。

if ($logged_in == FALSE)
{
     redirect('/login/form/', 'refresh');
}

または、'location'の代わりにを使用すると'refresh'、witchを使用してサーバーに送信するヘッダー応答を設定できます

// with 301 redirect
redirect('/article/13', 'location', 301);

しかし、Tank Authには、アプリケーションに十分な独自のメソッドがあると思います。すでにそれを確認しましたか?

于 2011-06-13T17:16:19.887 に答える