Aktueller Standort: Startseite> Neueste Artikel> So implementieren Sie einen rollenbasierten Berechtigungssteuerungsmechanismus in PHP

So implementieren Sie einen rollenbasierten Berechtigungssteuerungsmechanismus in PHP

M66 2025-06-17

So implementieren Sie einen rollenbasierten Berechtigungssteuerungsmechanismus in PHP

Sicherheit ist ein entscheidender Faktor bei der Entwicklung einer Website oder Anwendung. So setzen Sie angemessene Berechtigungen für Benutzer und stellen Sie sicher, dass nur Benutzer mit bestimmten Berechtigungen auf die entsprechenden Funktionen und Ressourcen zugreifen können, die jeder Entwickler lösen muss. Rollenbasierte Berechtigungskontrolle (RBAC) ist eine gemeinsame Methode zur Berechnung des Managements. In diesem Artikel wird Sie mithilfe von PHP eine rollenbasierte Authentifizierungssteuerung implementieren.

1. Definition von Rollen und Berechtigungen

Bevor wir eine rollenbasierte Berechtigungskontrolle implementieren, müssen wir zunächst die Konzepte der "Rolle" und "Berechtigungen" klären.

Rollen stellen die Identität des Benutzers im System dar. Zum Beispiel "Administrator", "gewöhnlicher Benutzer" usw. Jede Rolle erhält normalerweise unterschiedliche Berechtigungen, um das zu begrenzen, was der Benutzer ausführen kann.

Berechtigungen sind systemdefiniert und bestimmen, welche Aktionen eine Rolle ausführen oder auf welche Ressourcen zugreifen kann. Berechtigungen können "Daten lesen", "Daten ändern" oder "Daten löschen" usw. umfassen.

Durch die Kombination von Rollen und Berechtigungen können Benutzer die Betriebsberechtigungen des Systems effektiv steuern.

2. Speichern Sie Rollen und Berechtigungen in der Datenbank

Um eine rollenbasierte Berechtigungskontrolle zu implementieren, müssen wir normalerweise die Rolle und die Berechtigungsinformationen in der Datenbank speichern. Wir können zwei Tabellen erstellen: Einen speichert Rolleninformationen und die andere Speicherinformationen. Hier ist ein Beispiel für eine SQL -Anweisung, die Rollen und Berechtigungstabellen erstellt:

Erstellen Sie eine Rollentabelle:

Tischrollen erstellen (
    ID int auto_increment Primärschlüssel,
    Nennen Sie Varchar (255) nicht null
);

Erstellen Sie die Berechtigungstabelle:

Erstellen Sie Tabellenberechtigungen (
    ID int auto_increment Primärschlüssel,
    Nennen Sie Varchar (255) nicht null
);

In der Rollentabelle verwenden wir das Feld "Name", um den Rollennamen zu speichern, und im Feld "Name", um den Erlaubnisnamen zu speichern.

3. Weisen Sie den Benutzern Rollen und Berechtigungen zu

In den tatsächlichen Anwendungen müssen Sie zunächst Rollen und Berechtigungen erstellen und dem Benutzer Rollen und Berechtigungen zuweisen.

Beispielsweise können wir Daten mit den folgenden SQL -Anweisungen in Rollentabellen und Berechtigungstabellen einfügen:

Rollendaten einfügen:

In Rollen (Name) Werte einfügen ('admin');
In Rollen (Name) Werte einfügen ('Benutzer');

Berechtigungsdaten einfügen:

In Berechtigungen einfügen (Name) Werte ('erstellen');
In Berechtigungen einfügen (Name) Werte ('lesen');
In Berechtigungen einfügen (Name) Werte ('Update');
In Berechtigungen einfügen (Name) Werte ('löschen');

Als nächstes müssen wir dem Benutzer Rollen zuweisen. Sie können Benutzerinformationen speichern, indem Sie eine Benutzertabelle erstellen und die Rollen -ID assoziieren. Hier ist ein Beispiel für SQL zum Erstellen von Benutzertabellen:

Erstellen einer Benutzertabelle:

Tabellenbenutzer erstellen (Benutzer
    ID int auto_increment Primärschlüssel,
    Benutzername Varchar (255) Nicht null,
    Passwort varchar (255) nicht null,
    rollen_id int nicht null
);

Fügen Sie dann die Benutzerdaten mit der folgenden Anweisung ein:

Benutzerdaten einfügen:

Einfügen in Benutzer (Benutzername, Kennwort, Rollen-) Werte ('admin', 'admin_password', 1);
Einfügen in Benutzer (Benutzername, Kennwort, Rollen-) Werte ('Benutzer', 'user_password', 2);

4. Rollenbasierte Authentifizierung und Kontrolle implementieren

In PHP können wir Session verwenden, um den Anmeldestatus und die Rolleninformationen des Benutzers zu speichern. Nachdem sich der Benutzer angemeldet hat, speichern wir ihre Rollen -ID in der Sitzung und verwenden dann die Berechtigungssteuerung, indem wir die Rollen -ID beurteilen.

Hier ist ein PHP -Code -Beispiel, das den Anmeldestatus eines Benutzers, seine Rolle und die Berechtigungen überprüft:

// Sitzung starten
Session_Start ();

// Überprüfen Sie, ob der Benutzer angemeldet ist if (! Isset ($ _ Session ['user_id']))) {
    echo "nicht angemeldet in";
    Ausfahrt;
}

// die Benutzerrollen -ID erhalten
$ rollen_id = $ _Session ['rollen_id'];

// Benutzerrolle beurteilen if ($ rollen_id == 1) {
    echo "Administrator, alle Berechtigungen haben";
} elseif ($ rollen_id == 2) {
    echo "gewöhnlicher Benutzer mit einigen Berechtigungen";
} anders {
    echo "unbekannte Rolle";
    Ausfahrt;
}

// Benutzerberechtigungen $ ARMISMIONIERT = $ _get ['Erlaubnis'];

if ($ rollen_id == 1 || ($ rollen_id == 2 && in_array ($ genehmigen, ['read', 'update'])) {
    echo "hat {$ Erlaubnis} Erlaubnis";
} anders {
    echo "no {$ Erlaubnis} Erlaubnis";
    Ausfahrt;
}

Überprüfen Sie zuerst in diesem Code, ob der Benutzer angemeldet ist, und bestimmen Sie dann die Berechtigungen, die er auf der Rollen -ID des Benutzers basiert. Sie können die Beurteilungslogik von Rollen und Berechtigungen anhand der tatsächlichen Bedürfnisse anpassen.

5. Zusammenfassung

Rollenbasierte Authentifizierungskontrolle (RBAC) ist eine sehr effektive Methode zur Berechtigungsverwaltung. Durch das Speichern von Rollen und Berechtigungen in der Datenbank und Kombination von PHP -Code, um die Rollen und Berechtigungen des Benutzers zu beurteilen, können wir sicherstellen, dass jeder Benutzer nur in seinen eigenen Berechtigungen zugreifen und Vorgänge ausführen kann. Dieser Ansatz erhöht die Sicherheit und Verwaltbarkeit des Systems während der Entwicklung.