Aktueller Standort: Startseite> Neueste Artikel> PHP -Sicherheit Authentifizierung und Autorisierung vollständiger Leitfaden: Praktische Methoden und Code Beispiele

PHP -Sicherheit Authentifizierung und Autorisierung vollständiger Leitfaden: Praktische Methoden und Code Beispiele

M66 2025-07-21

Überblick über die Sicherheitsauthentifizierung und Autorisierung in PHP

In der PHP -Entwicklung sind die Authentizität der Benutzeridentität und die angemessene Kontrolle der Zugriffsrechte der Schlüssel zum Aufbau sicherer Webanwendungen. In diesem Artikel werden mehrere gemeinsame Authentifizierungs- und Autorisierungstechnologien eingeführt und sie in Kombination mit Code -Beispielen erläutert, mit denen Sie eine sicherere Anwendungsumgebung erreichen können.

Authentifizierung: Bestätigen Sie die Identität des Benutzers

Grundlegende HTTP -Authentifizierung

HTTP Basic Authentication fordert Benutzername und Kennwort über ein Browser-Popup-Fenster an. Es ist einfach und einfach zu bedienen, verfügt jedoch über eine geringe Sicherheit während der Übertragung und ist für interne oder niedrige Sicherheitsbedarfszenarien geeignet.

Codebeispiel:

 // HTTP Basic Authentication Header senden ('www-authenticate: Basic Realm = "Protected Area"');
Header ('http/1.0 401 nicht autorisiert');

// Überprüfen Sie die angegebenen Anmeldeinformationen if (isset ($ _ server ['php_auth_user']) && isset ($ _ server ['php_auth_pw']))) {
    $ userername = $ _server ['php_auth_user'];
    $ password = $ _server ['php_auth_pw'];

    // den Benutzer in der Datenbank finden $ STMT = $ mysqli-> vorbereiten ("Select * von Benutzern, wo userername =? Und password =?");
    $ stmt-> bind_param ("ss", $ userername, $ password);
    $ stmt-> execute ();
    $ result = $ stmt-> get_result ();
    $ stmt-> close ();

    if ($ result-> num_rows> 0) {
        // Überprüfung ist erfolgreich, der Zugriff ist zulässig} else {
        // Überprüfung fehlgeschlagen und zeigte 401 nicht autorisierte Antwort echo "unbefugter Zugriff";
    }
}

Formauthentifizierung

Das Senden von Benutzername und Kennwort über HTML -Formulare ist die am häufigsten verwendete Authentifizierungsmethode in Webanwendungen und kombiniert die Sitzungsverwaltung, um die Wartung des Benutzeranmeldes zu erreichen.

Codebeispiel:

 // Anmeldeformulareinreichung verarbeiten if (isset ($ _ post ['Benutzername']) && isset ($ _ post ['password'])) {
    $ userername = $ _post ['userername'];
    $ password = $ _post ['Passwort'];

    // den Benutzer in der Datenbank finden $ STMT = $ mysqli-> vorbereiten ("Select * von Benutzern, wo userername =? Und password =?");
    $ stmt-> bind_param ("ss", $ userername, $ password);
    $ stmt-> execute ();
    $ result = $ stmt-> get_result ();
    $ stmt-> close ();

    if ($ result-> num_rows> 0) {
        // Überprüfung ist erfolgreich, erstellen Sie eine Authentifizierungssitzung Session_start ().
        $ _Session ['authentifiziert'] = true;

        // Umleiten in geschützter Bereiche ("Ort: protected_area.php");
    } anders {
        // Überprüfung fehlgeschlagen, wobei die Fehlermeldung "Ungültiger Benutzername oder Passwort" angezeigt wird.
    }
}

Autorisierung: Kontrolle der Benutzerzugriffsrechte

Rollengenehmigung

Verwaltungszugriffsberechtigungen basierend auf Benutzerrollen sind in Anwendungen mehrerer Benutzer häufig, z. B. die Berechtigungsunterscheidung zwischen Administratoren und normalen Benutzern.

Codebeispiel:

 // Überprüfen Sie, ob der Benutzer über die Berechtigungen verfügt, die für den Zugriff auf einen bestimmten Schutzbereich erforderlich sind, wenn (ISSET ($ _ Session ['user_role']) && $ _Session ['user_role'] == 'admin') {
    // Zugriff zulassen}

Ressourcengenehmigung

Steuern Sie den Zugriff auf bestimmte Ressourcen (z. B. Dateien, Datenbankdatensätze), um sicherzustellen, dass Benutzer nur in ihren Berechtigungen auf Ressourcen zugreifen können.

Codebeispiel:

 // Überprüfung der Dateizugriffsberechtigungen basierend auf der Benutzer -ID $ path = '/uploads/'. $ _Get ['file_id'];
if (Datei_exists ($ path) && is_file ($ path)) {
    $ fileowner = 'user_'. $ _Get ['user_id'];
    if (FileOwner ($ path) == $ fileunner) {
        // Zugriff auf Dateien zulassen}
}

Umfassende praktische Fälle

In einer Message Board -Anwendung können die oben genannten Authentifizierungs- und Autorisierungsmechanismen kombiniert werden:

  • Benutzer melden sich über die HTTP -Basisauthentifizierung oder die Formauthentifizierung an.
  • Nach erfolgreicher Authentifizierung erstellen Sie eine Sitzung und weisen Sie eine Rolle (z. B. ein registrierter Benutzer oder ein Administrator) zu.
  • Nur Benutzer mit entsprechenden Rollen können auf eingeschränkte Bereiche wie den Verwaltungshintergrund zugreifen.

Zusammenfassen

Durch rationales Entwerfen des Authentifizierungs- und Autorisierungsprozesses können PHP -Entwickler die Sicherheit von Webanwendungen effektiv verbessern. Der in diesem Artikel bereitgestellte Beispielcode und Ideen bieten praktische Referenz für die Implementierung einer sicheren Zugriffskontrolle und beitragen, ein stabileres und zuverlässigeres Anwendungssystem zu erstellen.