Ich kann mich zwar irren, aber soweit ich weiß, ist es eine gängige Praxis, Berechtigungen auf diese Weise zu handhaben:
-
Der Benutzer ruft die Anmeldeseite auf und gibt einen Benutzernamen und ein Passwort ein.
-
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.
-
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.