一人のユーザーのために、phpでアクセスが制限された非常にシンプルなページを作りたいとしましょう。許可されたユーザーがページのディレクトリとURLを知っているget
場合、URLバーのメソッドを介してユーザー名とパスワード(彼が知っているはずです)を手動で渡し、スクリプトに対して自動的にチェックすることができます。ユーザー名とパスワードのはハードコーディングされますか?スクリプトには、if statement
trueでない場合、コンテンツを表示しないというものがあります。どのような欠陥がある可能性がありますか?
URL
http://example.com/admin.php?user=admin&password=1324
admin.php
<?php if($_GET['user'] == 'admin' && $_GET['password'] == '1324')){
// display content here
}else{
echo "You're not authorized to visit this page";
} ?>
シナリオ2:post
方法
上記のシナリオと同様に、このシナリオでは、許可されたユーザーがユーザー名とパスワードをフォームに入力し、実際のadmin.php
ファイルで処理されます。同様のif statement
ことが使用され、$_POST[]
今回はスーパーグローバルで入力をチェックします。
<?php if($_POST['user'] == 'admin' && $_POST['password'] == '1324'){
// display content here
}else{
echo "You're not authorized to visit this page";
} ?>