2011-01-11 4 views
0

私は管理者のみのアクセスのためにいくつかのページがあり、私のサイトの各ユーザーはMySQLデータベースにエントリを持っています。 Rankという名前の列があり、この列には2つの有効な値、AdminおよびUserがあります。私のコンテンツを保護するために、私はこのようなコードを使用しています: adminだけを実行できるif内のPHPのコードは保護されていますか?

if($user->rank == "Admin"){ 
    //Code Here 
}else{ 
    echo "youre not a admin!" 
} 

は私の質問をされています。このページは保護されていますか?

誰か他の手段でデータベースにハックして、そのランクをAdminに変更すると、彼らはこのページにアクセスすることができますが、その場合は安全ですか?

+0

あなたのウェブサーバが棒を投げず、PHPページの生の内容をプレーンテキストとして提供し始めたら、はいとします。 –

答えて

1

セキュリティはバイナリの問題ではなく、それ以上の連続性です。数行のコードに基づいて安全なサイトまたはアプリケーションを指定することは不可能です。

0

コードは完全に問題ありません。誰かがそのコードを含むファイルにアクセスすると、それはサーバー側で処理されます。クライアントは決してそれを見ない。

もちろん、誰かがサーバーファイルシステムにアクセスして編集用にファイルを開いた場合、そのファイルを変更することができます。しかし、もし彼らがそれをしたら、私はあなたがより大きな問題を抱くことを恐れる。

1

ただし、他の場所にセキュリティホールがない場合、そのコードは安全です。

それは、これを行うには簡単かもしれ:

<?php 
if($user->rank != "Admin"){ 
    echo "youre not a admin!" 
    exit(); 
} 

...(other php code) 
?> 
...(other code for the page) 

exit();が処理を停止しますので、コードのどれもそれが実行され、管理者以外のユーザーは表示されません下回ります。 the docsを参照してください。

関連する問題