2

について質問がありheader('location: ----.php')ます。管理者がこの機能を使用して、一部のページのユーザーアクセスを制限しても安全ですか?たとえば、ユーザーがADMINでない場合、この関数を使用して、ユーザーに一部のページが表示されないようにすることはできますか?これは、一部のページを不正アクセスから保護するための良い方法ですか?そうでない場合、誰かが私に安全な制限の提案をすることができますか?

たとえば、私はこれを制限に使用しています:

$id = $_SESSION['id'];
$queryget = mysql_query("SELECT * FROM users WHERE id='$id'"); 
$row_12 = mysql_fetch_assoc($queryget);
$admin = $row_12['admin_id'];
$ruka = $row_12['rukovoditelj'];


if($row_12['admin_id'] > 1)
{
    header('Location: dosjei.php');
}
4

2 に答える 2

6

後でスクリプトの実行を停止すると仮定すると安全です(たとえば、exitを使用して)。

header("Location: dosjei.php");
exit;

もちろん、許可されていないユーザーに隠す必要のあるデータをページに書き込む前に、スクリプトの最初で検証を行う必要があります。

于 2012-05-07T14:50:39.067 に答える
3

はい、安全です。ただし、後で終了する場合に限ります。このように、ユーザーがヘッダーを尊重しなかったとしても、ユーザーはLocation何も見ることができません。次のようなもの:

if ($row_12['admin_id'] < 1) {
    header("Location: dosjei.php");
    die();
}

display_content_for_authorized_users(); //Would never be reached if $unauthorized is true.
于 2012-05-07T14:53:41.117 に答える