1

リモート サーバー上で安全な Web アプリケーションを作成中です。ログイン情報を投稿したユーザーのみが利用できる Web ページにユーザーがアクセスできないようにする業界標準はありますか。

これまでのところ、認証されたユーザー ページは、ユーザーがセッション変数を保持している場合、単純なヘッダー リダイレクトを使用して保護されています。

これは業界標準ですか?そのような方法を実装するより良い方法はありますか。

ピセドコード

 Session code dosent equal value or session is null {

     header redirect to index 

}
4

3 に答える 3

1

コメントで述べたように、リダイレクトヘッダー自体はセキュリティ機能ではありません。リダイレクトヘッダーを送信したら、通常の実行が行われないことを確認する必要があります。

例えば:

if($username != "foo" && $password != "bar")
{
    header('Location: http://domain.org/index.php');
}

echo "Authorized page";

ユーザー名とパスワードが正しくない場合でも、Locationヘッダーを無視するだけでこのページのコンテンツにアクセスできます。

簡単な修正は次のようになります。

if($username != "foo" && $password != "bar")
{
    header('Location: http://domain.org/index.php');
    die("Redirecting to home page");
}

echo "Authorized page";

さらに、認証は各ページの手動チェックに依存しないことが重要です。これらのチェックは開発者が簡単に忘れてしまう可能性があるためです。これらの種類のものを可能な限り自動化するようにしてください。

于 2012-09-28T11:05:05.137 に答える
0

質問が正しいかどうかはよくわかりません。

ただし、これは役立つ場合があります。Webサーバーは認証を非常に適切に処理するため(正しく構成されている場合)、ホットリンクのみが残ります。サーバー構成の追加のリダイレクトルールによってその問題をキャッチしようとすることができます。HTTP_REFERERが以前に認証されたページでない場合は、どこにでもリダイレクトします。

これ以上私が考えることはありません。重要なことは、最初に認証を正しく安全に行うことです。

于 2012-09-28T10:49:53.380 に答える
0

それが良い解決策かどうかはわかりませんが、セッション変数にログイン ステータスを保持するだけです。

if ($_SESSION[loggedIn] == "yes"  && $_SESSION["LevelTwoPermissions"] == "yes")
{
    // Grant access to allowed content...
}
else
{
    // Redirect to login page or ask for login in a pop-up
}

理論的には、他のユーザーからセッション Cookie を盗むことでハッキングされる可能性がありますが、私の目的では妥当なレベルのセキュリティです。

于 2012-09-28T11:45:33.510 に答える