Skip to the content
Documentation
Help Start
Reading in:
  • German: 9,059 of 9,059 pages
About the help in other languages
All help pages

Zugriffskontrolle im Code

Die Rechte von Exponential in jeder Schicht einer Anwendung anwenden - der aktuelle Benutzer, Richtlinienprüfungen mit Einschränkungen, Prüfungen auf Inhaltsebene, Hintergrundarbeit als der richtige Benutzer…

Download as PDF

Address: https://doc.exponential.earth/exphelp/viewer/help/creators/app-creators/access-control-in-code.md

On this page

This page is a translation. Read the English original

Zugriffskontrolle im Code

Diese Seite ist für Anwendungsentwickler, die dafür sorgen, dass jeder Benutzer nur sieht und tut, was seine Rollen erlauben. Der Kernel prüft die Modulfunktion, bevor eine Ansicht läuft; alles Feinere ist Aufgabe Ihres Codes (Richtlinienfunktionen und Einschränkungen).

Inhalt

  1. Wer ist der Benutzer?
  2. Drei Ebenen von Prüfungen
  3. Hintergrundarbeit
  4. Integrationsbenutzer
  5. Entscheidungen festhalten

Wer ist der Benutzer?

$user = eZUser::currentUser();
if ( !$user->isRegistered() ) { /* anonymous */ }
$userID = eZUser::currentUserID();

In Web-Anfragen kommt der Benutzer aus der Sitzung oder aus einem API-Zugangsnachweis; in Skripten, Cronjobs und Workern ist er anonym, solange der Code keinen Benutzer anmeldet.

Drei Ebenen von Prüfungen

EbenePrüfungBeispiel
Funktiondie functions der Ansicht in module.php oder hasAccessTo( 'expdemo', 'manage' )darf dieser Benutzer überhaupt verwalten?
Einschränkung$access['policies'] auswerten, wenn accessWord den Wert limited hatnur in diesen Sektionen
Objekt$node->canRead(), $object->canEdit(), $object->checkAccess( 'remove' ); eigene Besitzerprüfungen für Ihre Tabellendieses Element

Prüfen Sie auf jeder zutreffenden Ebene, an jedem Einstiegspunkt. Eine Liste von Elementen muss dieselben Prüfungen anwenden wie ein einzelnes Element: Filtern Sie die Abfrage, statt Zeilen im Template auszublenden.

Hintergrundarbeit

  • Ein Job in der Warteschlange läuft als der Benutzer, der ihn eingereiht hat (user_id von expqueue); prüfen Sie die Rechte als dieser Benutzer, so wie es eine Web-Anfrage täte (Warteschlangen mit expqueue).
  • Ein Cronjob, der Inhalte schreibt, meldet einen eigenen Benutzer an, dessen Rolle genau dafür angelegt ist.
  • Lassen Sie Hintergrundarbeit nie "sicherheitshalber" als Administrator laufen: Das verdeckt Rechtefehler und macht das Audit wertlos.

Integrationsbenutzer

Legen Sie für eine Integration (einen Import, einen API-Client) einen Benutzer an, dessen Rolle nur das enthält, was die Integration braucht, eingeschränkt auf ihren Teilbaum oder ihre Sektion. Geben Sie ihm einen eigenen API-Schlüssel oder OAuth-Client, damit er sich einzeln widerrufen lässt (OAuth und API-Schlüssel).

Entscheidungen festhalten

Schreiben Sie sicherheitsrelevante Aktionen und Ablehnungen in das Prüfprotokoll, mit IDs und niemals mit Geheimnissen oder personenbezogenen Inhalten, damit Administratoren sie prüfen können (Prüfprotokoll, Audit).

Verwandte Seiten

Werden Sie Exponential-Partner

Partner teilen ihre Informationen, stellen Mittel bereit, geben Beiträge zurück und entwickeln die Produkte mit uns, und so wächst Exponential. Eine Partner-Website und ein Dashboard sind für Mitte 2027 geplant: Werden Sie noch heute Partner, damit wir schneller wachsen und neue Funktionen früher liefern.

Something wrong on this page? Report an error

Documentation license

This documentation is free documentation, licensed under the GNU Free Documentation License 1.3 or later.

Exponential Copyright © 1998-2026 Exponential Foundation and 7x