PHP開発では、ユーザーのアイデンティティの信頼性とアクセス権の合理的な制御が安全なWebアプリケーションを構築するための鍵です。この記事では、いくつかの一般的な認証と承認技術を紹介し、コード例と組み合わせて説明して、より安全なアプリケーション環境を実現するのに役立ちます。
HTTP Basic Authenticationは、ブラウザポップアップウィンドウを介してユーザー名とパスワードを要求します。シンプルで使いやすいですが、送信中はセキュリティが低く、内部または低セキュリティのニーズシナリオに適しています。
// HTTP Basic Authentication Headerを送信( 'www-authenticate:Basic Realm = "Protected Area"');
ヘッダー( 'http/1.0 401認める');
//指定された資格情報を確認するif(sist($ _ server ['php_auth_user'])&& isset($ _ server ['php_auth_pw']){
$ username = $ _server ['php_auth_user'];
$ password = $ _server ['php_auth_pw'];
//データベースでユーザーを見つけます$ stmt = $ mysqli-> prepare( "select * from users where username =?and password =?");
$ stmt-> bind_param( "ss"、$ username、$ password);
$ stmt-> execute();
$ result = $ stmt-> get_result();
$ stmt-> close();
if($ result-> num_rows> 0){
//検証が成功し、アクセスがライセンスされます} else {
//検証が失敗し、401の不正な応答エコー「不正アクセス」が急行されました。
}
}HTMLフォームを介してユーザー名とパスワードを送信することは、Webアプリケーションで最も一般的に使用される認証方法であり、セッション管理を組み合わせてユーザーログインステータスメンテナンスを実現します。
//ログインフォームの提案しますを処理するif(ISSET($ _ post ['username']))&& sisset($ _ post ['password'])){
$ username = $ _post ['username'];
$ password = $ _post ['password'];
//データベースでユーザーを見つけます$ stmt = $ mysqli-> prepare( "select * from users where username =?and password =?");
$ stmt-> bind_param( "ss"、$ username、$ password);
$ stmt-> execute();
$ result = $ stmt-> get_result();
$ stmt-> close();
if($ result-> num_rows> 0){
//検証が成功し、認証セッションsession_start()を作成します。
$ _SESSION ['Authenticated'] = true;
//守るされたエリアヘッダーにリダイレクト( "場所:protected_area.php");
} それ以外 {
//検証が失敗し、エラーメッセージが急行されます。「無効なユーザー名前またはパスワード」。
}
}ユーザーの役割に基づく管理アクセス許可は、管理者と通常のユーザーの許可区別など、複数のユーザーのアプリケーションで一般的です。
//ユーザーが特定の守るエリアにアクセスするために必要なアクセスライセンスを所有っているかどうかを確認します。
//アクセスライセンス}特定のリソース(ファイル、データベースレコードなど)へのアクセスを制御して、ユーザーがアクセス許可内のリソースのみにのみアクセスできるようにします。
//ユーザーID $ path = '/uploads/'にベースづいてファイルアクセス権限を確認します。 $ _get ['file_id'];
if(file_exists($ path)&& is_file($ path)){
$ fileOwner = 'user_'。 $ _get ['user_id'];
if(fileOwner($ path)== $ fileOwner){
//ファイルへのアクセスをライセンスする}
}メッセージボードアプリケーションでは、上記の認証と承認メカニズムを組み合わせることができます。
認証と承認プロセスを合理的に設計することにより、PHP開発者はWebアプリケーションのセキュリティを効果的に改善できます。この記事で提供されているサンプルコードとアイデアは、安全なアクセス制御を実装するための実用的な参照を提供し、より安定した信頼性の高いアプリケーションシステムを作成するのに役立ちます。