2 Stimmen

Website-Berechtigungen: Ändern der Rechte eines Benutzers, während er eingeloggt ist

Ich kann mich zwar irren, aber soweit ich weiß, ist es eine gängige Praxis, Berechtigungen auf diese Weise zu handhaben:

  1. Der Benutzer ruft die Anmeldeseite auf und gibt einen Benutzernamen und ein Passwort ein.

  2. Der Benutzername und das Passwort werden überprüft. Wenn sie gültig sind, werden die Informationen des Benutzers (einschließlich der Berechtigungen) in eine Sitzungsvariable aufgenommen.

  3. Wenn der angemeldete Benutzer auf der Website navigiert, stehen ihm bestimmte Funktionen zur Verfügung, die auf seinen Berechtigungen basieren, auf die in der Sitzung verwiesen wird.

Dies ist sinnvoll, da es unpraktisch wäre, die Datenbank häufig nach den Berechtigungen des Benutzers zu fragen. Vom Standpunkt der Sicherheit aus gesehen, bin ich mir jedoch nicht sicher, was der beste Ansatz ist. Ein einfaches Beispiel wäre, wenn man einem Benutzer eine bestimmte Berechtigung entziehen möchte, während er angemeldet ist. Ein extremes Beispiel wäre, ein Benutzerkonto als inaktiv zu markieren, während der Benutzer angemeldet ist. Ich wüsste nicht, wie man den Webbrowser des Benutzers über die Änderung informieren könnte, außer durch den Code Datenbank Genehmigungsprüfungen (im Gegensatz zu Sitzung Berechtigungsprüfungen) in jeden Teil der Website. Auch das scheint übertrieben zu sein, aber ist das wirklich der einzige Weg, wenn Sie eine sichere Website wollen?

Gracias.

0voto

sarnold Punkte 99402

Ich glaube, Sie haben es richtig ausgedrückt:

Ich weiß nicht, wie Sie den Webbrowser dieses Benutzers dazu bringen können, von der Änderung zu erfahren, außer indem Sie in jedem Teil der Website Prüfungen der Datenbankberechtigung (im Gegensatz zu Prüfungen der Sitzungsberechtigung) codieren.

Je nachdem, wie Ihre Website aufgebaut ist, kann es sinnvoll sein die Sitzung des Benutzers ungültig machen wenn Sie die Berechtigungen des Benutzers drastisch genug ändern. Das Löschen von Sitzungen bedeutet, dass der Benutzer sich erneut anmelden muss, aber wenn Sie nur sein Konto deaktiviert oder seine Berechtigungen stark herabgesetzt haben, kann das akzeptabel sein.

Aber Sie möchten die Sitzung nicht wegen jeder Kleinigkeit und schon gar nicht wegen fast jeder Erlaubnis für ungültig erklären Erweiterung Operationen.

Wenn Sie alle Sitzungen N Sekunden nach der letzten Authentifizierung ablaufen lassen, können Sie eine Obergrenze für die Zeit festlegen, die Ihr Anwendungscode tatsächlich entzogene Berechtigungen gewähren würde. Dies kann sinnvoll sein, wenn der Einsatz ohnehin nicht sehr hoch ist.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X