Position actuelle: Accueil> Derniers articles> PHP Security Authentication and Authorization Guide complet: méthodes pratiques et exemples de code

PHP Security Authentication and Authorization Guide complet: méthodes pratiques et exemples de code

M66 2025-07-21

Aperçu de l'authentification et de l'autorisation de la sécurité dans PHP

Dans le développement de PHP, garantir l'authenticité de l'identité des utilisateurs et le contrôle raisonnable des droits d'accès sont la clé pour créer des applications Web sécurisées. Cet article présentera plusieurs technologies d'authentification et d'autorisation courantes et les expliquera en combinaison avec des exemples de code pour vous aider à atteindre un environnement d'application plus sûr.

Authentification: confirmez l'identité de l'utilisateur

Authentification HTTP de base

HTTP Basic Authentication demande le nom d'utilisateur et le mot de passe via une fenêtre contextuelle du navigateur. Il est simple et facile à utiliser, mais a une faible sécurité pendant la transmission et convient aux scénarios de besoins internes ou à faible sécurité.

Exemple de code:

 // Endire HTTP Basic Authentication ('WWW-Authenticate: Basic Realm = "Protected Area"');
En-tête ('http / 1.0 401 non autorisé');

// Vérifiez les informations d'identification fournies if (isset ($ _ serveur ['php_auth_user']) && isset ($ _ serveur ['php_auth_pw'])) {
    $ username = $ _server ['php_auth_user'];
    $ mot de passe = $ _Server ['php_auth_pw'];

    // Trouvez l'utilisateur dans la base de données $ stmt = $ mysqli-> prépare ("SELECT * dans les utilisateurs où username =? Et mot de passe =?");
    $ stmt-> bind_param ("ss", $ username, $ mot de passe);
    $ stmt-> execute ();
    $ result = $ stmt-> get_result ();
    $ stmt-> close ();

    if ($ result-> num_rows> 0) {
        // La vérification est réussie, l'accès est autorisé} else {
        // Échec de la vérification, montrant 401 Réponse non autorisée Echo "Accès non autorisé";
    }
}

Authentification

La soumission du nom d'utilisateur et du mot de passe via les formulaires HTML est la méthode d'authentification la plus couramment utilisée dans les applications Web, et il combine la gestion de session pour réaliser la maintenance de l'état de la connexion de l'utilisateur.

Exemple de code:

 // Traiter la soumission du formulaire de connexion if (isset ($ _ poster ['username']) && isset ($ _ post ['mot de passe'])) {
    $ username = $ _post ['username'];
    $ mot de passe = $ _post ['mot de passe'];

    // Trouvez l'utilisateur dans la base de données $ stmt = $ mysqli-> prépare ("SELECT * dans les utilisateurs où username =? Et mot de passe =?");
    $ stmt-> bind_param ("ss", $ username, $ mot de passe);
    $ stmt-> execute ();
    $ result = $ stmt-> get_result ();
    $ stmt-> close ();

    if ($ result-> num_rows> 0) {
        // la vérification est réussie, créez une session d'authentification session_start ();
        $ _Session ['Authenticated'] = true;

        // Redirection vers l'en-tête de zone protégé ("Emplacement: protégé_area.php");
    } autre {
        // Vérification a échoué, affichant le message d'erreur Echo "Nom d'utilisateur ou mot de passe non valide";
    }
}

Autorisation: contrôler les droits d'accès aux utilisateurs

Autorisation des rôles

Les autorisations d'accès administratives basées sur les rôles utilisateur sont courantes dans les applications de plusieurs utilisateurs, telles que la distinction d'autorisation entre les administrateurs et les utilisateurs ordinaires.

Exemple de code:

 // Vérifiez si l'utilisateur a les autorisations requises pour accéder à une zone protégée spécifique if (isset ($ _ session ['user_role']) && $ _Session ['user_role'] == 'admin') {
    // Autoriser l'accès}

Autorisation des ressources

Contrôlez l'accès à des ressources spécifiques (telles que les fichiers, les enregistrements de base de données) pour garantir que les utilisateurs ne peuvent accéder aux ressources que dans leurs autorisations.

Exemple de code:

 // Vérifiez les autorisations d'accès au fichier en fonction de l'ID utilisateur $ path = '/ uploads /'. $ _Get ['file_id'];
if (file_exists ($ path) && is_file ($ path)) {
    $ fileowner = 'user_'. $ _Get ['user_id'];
    if (fileOwner ($ path) == $ fileOwner) {
        // permettre l'accès aux fichiers}
}

Cas pratiques complets

Dans une application de babillard de message, les mécanismes d'authentification et d'autorisation ci-dessus peuvent être combinés:

  • Les utilisateurs se connectent via l'authentification de base HTTP ou l'authentification du formulaire.
  • Une fois l'authentification réussie, créez une session et attribuez un rôle (comme un utilisateur enregistré ou un administrateur).
  • Seuls les utilisateurs ayant des rôles correspondants peuvent accéder à des domaines restreints tels que l'arrière-plan de la gestion.

Résumer

En concevant rationnellement le processus d'authentification et d'autorisation, les développeurs PHP peuvent améliorer efficacement la sécurité des applications Web. L'exemple de code et d'idées fournis dans cet article fournissent une référence pratique pour la mise en œuvre du contrôle d'accès sécurisé, contribuant à créer un système d'application plus stable et fiable.