In Webanwendungen ist die Benutzerberechtigungssteuerung eine Schlüsselfunktion, um die Sicherheit des Systems zu gewährleisten. Dies verhindert nicht nur einen unbefugten Zugriff, sondern stellt auch sicher, dass legitime Benutzer die Berechtigungen erhalten, die sie benötigen. In diesem Artikel werden Sie durch spezifische Beispiele für PHP -Code nach und nach die Kontrolle der Benutzerberechtigungen erkennen.
Vor der Entwicklung eines Berechtigungssteuerungssystems müssen wir zunächst eine Datenbank entwerfen, um Benutzerinformationen und Berechtigungsdaten zu speichern. Normalerweise erstellen Sie die folgenden Tabellen:
1. Benutzertabelle: Speichert die grundlegenden Informationen und Anmeldeinformationen des Benutzers.
2. Rollentabelle: Definieren Sie Benutzerrollen und ihre damit verbundenen Berechtigungen.
3.. Berechtigungstabelle: Listet alle verfügbaren Berechtigungen des Systems auf.
4. Rollenberechtigungsbeziehungstabelle: Eine viel-zu-Viele-Beziehung, die Rollen und Berechtigungen verbindet.
Tabellenbenutzer erstellen (Benutzer ID int (11) Auto_increment Primärschlüssel, Benutzername Varchar (50) Nicht null, Passwort varchar (255) nicht null, ROLE_ID INT (11) NICHT NULL ); Tischrollen erstellen ( ID int (11) Auto_increment Primärschlüssel, Nennen Sie Varchar (50) NICHT NULL ); Erstellen Sie Tabellenberechtigungen ( ID int (11) Auto_increment Primärschlüssel, Nennen Sie varchar (50) nicht null, Ressourcenvarchar (50) nicht null ); TABLE ROLLE_PERMENSS CREATE ( ID int (11) Auto_increment Primärschlüssel, ROLE_ID INT (11) NICHT NULL, Berechtigung_ID int (11) nicht null );
Vor der Implementierung der Berechtigungssteuerung müssen wir eine grundlegende Anmeldefunktion implementieren. Der Benutzer überprüft, indem Sie den Benutzernamen und das Kennwort senden, und das System überprüft die Benutzeranmeldeinformationen basierend auf den Datensätzen in der Datenbank.
Session_Start (); if ($ _server ['request_method'] == 'post') { $ userername = $ _post ['userername']; $ password = $ _post ['Passwort']; // eine Verbindung zu der Datenbank- und Abfragen von Benutzerinformationen $ conn = new MySQLi ('localhost', 'username', 'password', 'database'); $ query = "Select * von Benutzern, wobei userername = '$ userername' und password = '$ password'"; $ result = $ conn-> query ($ query); if ($ result-> num_rows == 1) { $ row = $ result-> fetch_assoc (); $ _Session ['user_id'] = $ row ['id']; $ _Session ['Benutzername'] = $ row ['Benutzername']; $ _Session ['rollen_id'] = $ row ['rollen_id']; Header ('Ort: Dashboard.php'); Ausfahrt; } anders { $ error = "Ungültiger Benutzername oder Passwort"; } } if (isset ($ _ session ['user_id'])) { Header ('Ort: Dashboard.php'); Ausfahrt; }
Nachdem sich der Benutzer angemeldet hat, müssen wir die Berechtigungen basierend auf der Rolle des Benutzers überprüfen, um sicherzustellen, dass Benutzer nur auf die von ihnen autorisierten Ressourcen zugreifen können. Durch das Schreiben einer Berechtigungsüberprüfungsfunktion können wir Benutzer daran hindern, auf nicht übermittelte Seiten zugreifen zu können.
Funktion CheckPermission ($ Resource) { // Überprüfen Sie, ob der Benutzer angemeldet ist if (! Isset ($ _ Session ['user_id']))) { Header ('Ort: login.php'); Ausfahrt; } // Abfragen Sie die Berechtigungen der Benutzerrolle $ conn = new MySQLi ('localhost', 'username', 'password', 'database'); $ query = "SELECT -Berechtigungen.Name Von (Rollen Innere join rollen_permissions zu rollen.id = rollen_permissions.role_id) Innere Join -Berechtigungen zu rollen_permissions.Permission_id = Berechtigungen.ID Wobei rollen.id = {$ _Session ['rollen_id']} Und Berechtigungen.Resource = '$ Resource' "; $ result = $ conn-> query ($ query); if ($ result-> num_rows == 0) { Header ('Ort: nicht autorisiert.php'); Ausfahrt; } } CheckPermission ('Dashboard.php');
Dieser Artikel enthält grundlegende Implementierungsmethoden für die Steuerung der PHP -Benutzerberechtigung, einschließlich Datenbankdesign, Benutzeranmeldungsüberprüfung, Berechtigungsüberprüfung und anderen Links. Abhängig von Ihren Anforderungen können Sie dieses System weiter optimieren, um verschiedene Webanwendungsszenarien zu entsprechen. Die Berechtigungssteuerung kann nicht nur die Sicherheit des Systems verbessern, sondern auch die Benutzererfahrung verbessern. Für jeden PHP-Entwickler ist es ein Muss.