Jump to content

Erweiterung:AccessControl

From mediawiki.org
This page is a translated version of the page Extension:AccessControl and the translation is 95% complete.
Outdated translations are marked like this.
MediaWiki-Erweiterungen
AccessControl
Freigabestatus: stabil
Einbindung Benutzerrechte , Parser-Erweiterung , Tag
Beschreibung Ermöglicht das Einschränken des Zugriffs auf bestimmte Seiten basierend auf internen Gruppen oder Gruppenlisten aus dem Benutzerbereich
Autor(en) Aleš Kapica (WantDiskussion)
Letzte Version 6.0 (2023-03-01)
Kompatibilitätspolitik Der Master behält die Abwärtskompatibilität bei.
MediaWiki 1.34+
PHP 7.4+
Datenbankänderungen Nein
Lizenz GNU General Public License 2.0 oder neuer
Herunterladen
Beispiel Support DCEwiki oder Thewoodcraft.org
  • $wgAdminCanReadAll
  • $wgAccessToHistory
  • $wgAccessControlRedirect
  • $wgAccessControlMeta
  • $wgAccessControlNamespaces
‎<accesscontrol> (not need anymore)
Quarterly downloads 54 (Ranked 81st)
Übersetze die AccessControl-Erweiterung, wenn sie auf translatewiki.net verfügbar ist
Probleme Offene Aufgaben · Einen Fehler melden

Die AccessControl Erweiterung ermöglicht es, den Zugriff auf bestimmte Seiten basierend auf internen Gruppen oder Gruppenlisten aus dem Benutzerbereich zu beschränken.

MediaWiki ist in seinem Standardzustand nicht als Content Management System (CMS) konzipiert, wenn es jedoch als Unternehmens- oder Schulintranet verwendet wird, muss es sensible Daten schützen. AccessControl wurde zu diesem Zweck entwickelt.

Wie diese Erweiterung die Anforderungen an die Sicherheit der Website erfüllt

Warnung Warnung: Es wird empfohlen, die neueste stabile Version von MediaWiki zu verwenden, da ältere Versionen von MediaWiki durch verschiedene Methoden umgangen werden können!
Atom/RSS-Feeds, Diff- und Revisions-Links
Der Seiteninhalt ist geschützt, jedoch wird beim Öffnen einer Seite aus dem Verlauf ein Stück Rohinhalt angezeigt. Wenn das <accesscontrol>-Tag am Anfang platziert wurde, kann ein potenzieller Angreifer die Namen der beitragenden Nutzer sehen!
Listings & Suche
Wenn nicht anders angegeben, wird der Nutzer weggeleitet, wenn sich in den Suchergebnissen eine Seite mit geschütztem Inhalt befindet. Seit der Erweiterungsversion 2.5 kann auch die Suche erlaubt werden. Es sollte aber bedacht werden, dass die angezeigten Suchergebnisse sensible Daten gefährden können. Schreibe daher keine sensiblen Daten wie Passwörter in dein Wiki, die durch eine Volltextsuche erlangt werden könnten, wenn die Suche in den Inhalten von Seiten, die durch eine Zugangskontrolle geschützt sind, erlaubt ist!
Inklusion/Transklusion, verwandte Schutzrechte und andere Erweiterungen
Seiten, die das Tag <accesscontrol> enthalten oder eine andere Seite einschließen, die durch das Tag <accesscontrol> geschützt ist, sind sicher. Das Tag <accesscontrol> wird vor der HTML-Konvertierung im rohen Wikitext verarbeitet.
Warnung Warnung: Wenn du Erweiterung:DynamicPageList3 verwendest, musst du wissen, dass diese Erweiterung die Inhaltsseiten auswählt, bevor der Parser den Wikitext analysiert. Der Schutz der erzeugten Seiten durch ein <accesscontrol> Tag hängt davon ab, dass das Tag im Inhalt der neuen Seite enthalten ist.
Umleitungen
Das Problem mit der Weiterleitung wurde in Version 1.1 behoben
API & Aktionslinks
Für jeden anonymen Benutzer wird die Aktionsklasse automatisch auf false festgelegt, neben dem Attribut view für ungeschützte Seiten. Erlaubte Aktionen für autorisierte Benutzer hängen von den Berechtigungseinstellungen von MediaWiki und dem in der Zugriffsliste aufgeführten Benutzernamen ab, den die Seiten verwenden.
Abschnitt bearbeiten & Seiten beobachten
Diese Optionen sind nur für registrierte Nutzer/innen verfügbar, wenn sie angemeldet sind und auf der Sicherheitszugangsliste stehen.
Dateien & Bilder
Warnung Warnung: Die Erweiterung AccessControl tut nichts, um Dateien vor dem direkten Zugriff per URL zu schützen! Wenn Dateien nicht öffentlich zugänglich sein dürfen, müssen sie auf Serverebene geschützt werden!
XML-Export (Special:Export)
Warnung: AccessControl Version < 2.0, basierte auf einem von MediaWiki ungeschützten Haken, bevor Seiten in Rohcode exportiert wurden. Wenn du also AccessControl Version < 2.0 verwendest, musst du die spezielle Seite verbieten, um den Export der Seiten aus MediaWiki zu verhindern.

Author backdoor : Extension AccessControl hat keine Hintertür!

Caching
Ich empfehle, das Caching zu deaktivieren. Siehe die vorherigen Absätze.

Weitere Informationen über mögliche Sicherheitsprobleme findest du auf der Seite Sicherheitsprobleme mit Autorisierungserweiterungen .

Funktionen

Seit Version 2.1 prüft die Erweiterung auch die eingebettete Seite oder Vorlage.
  • Leicht festzulegen und einfach zu verwenden.
  • Keine Patches am MediaWiki-Kern.
  • Unbegrenzte Gruppen.
  • Zugangskontrolle im dualen Modus:
    • Kontrolle ansehen.
    • Kontrolle bearbeiten, einschließlich Beschränkungen des manuellen Bearbeitungszugriffs bei Verwendung von action=edit in der URL.
  • Benutzergruppen können einen beliebigen Namensraum verwenden.
    • Namensräume mit Gruppenlisten können durch eine andere Erweiterung geschützt werden.
  • Die Gruppe der MediaWiki Administratoren kann die geschützten Seiten einsehen und bearbeiten.
    • Gesteuert durch die Variable $wgAdminCanReadAll
  • Der Zugang kann für mehrere Gruppen gewährt werden
  • Der Lesezugriff kann sowohl Gruppen als auch einzelnen Nutzern gewährt werden.
  • Unbefugte Nutzer können die Suchfunktion nur nutzen, wenn sie erlaubt ist. Siehe wie diese Erweiterung die Anforderungen an die Sicherheit einer Website erfüllt.

Dokumentation

Handbuch (vorerst in tschechischer Sprache) hier als Wikiseite, ist aber für die Übersetzung vorbereitet. Wenn du dazu beitragen willst, eine englische Version zu erstellen, musst du einen beliebigen Geldbetrag spenden, um einen kommerziellen Übersetzer zu bezahlen, denn der Autor hat nicht die Zeit und die Fähigkeiten dafür. Die Manpage (vorerst nur die tschechische Version) ist Teil des Quellcodes und kann in deine private MediaWiki-Instanz importiert werden, wenn du möchtest.

Installation

Schritt 1: Local Settings Datei

  • Überprüfe zunächst, ob du diese Variablen in der Datei LocalSettings.php festgelegt hast. Wenn nicht, lege sie fest:
$wgGroupPermissions['*']['read']            = true;
$wgGroupPermissions['*']['createaccount']   = false;
$wgGroupPermissions['*']['edit']            = false;
$wgGroupPermissions['*']['writeapi']        = false;
$wgGroupPermissions['*']['createpage']      = false;
$wgGroupPermissions['*']['createtalk']      = false;
  • Füge die folgenden Zeilen am Ende deiner LocalSettings.php hinzu:
wfLoadExtension( 'AccessControl' );
Es wird empfohlen, die Spezialseiten nicht zur Verfügung zu stellen, die dazu verwendet werden können, den Inhalt deines Wikis durch anonyme Bots oder Benutzer zu kompromittieren. Lies die Datei 'README', wo der Beispielschutzcode für LocalSettings.php steht
Warnung Warnung: Achte auf die Variable $wgAccessControlRedirect! Diese ist nur für Entwickler gedacht, um bei Bedarf einen Blick auf den Inhalt der Debug-Meldungen zu werfen. In der Produktion muss jeder Wert false sein.

Schritt 2: Handbuch lesen

Version 6.0 unterstützt die alte Syntax dieser Erweiterung. Die neue Syntax auf der Basis von Vorlagenparametern ist sehr anspruchsvoll. But for base use we can still use AccessList created by the old syntax, and protect pages by element accesscontrol.

Verwendung

Die neue Version verfügt über ein neues System zum Festlegen von Zugriffsrechten, das auf der Parametrisierung von Vorlagen basiert. Wenn der Parser bei der Verarbeitung einer Vorlage auf einen der folgenden Parameter stößt, ruft dieser AccessControl auf, um zu prüfen, ob der Benutzer Zugriff auf den Inhalt hat.

isProtectedBy - Liste der Benutzergruppen
readOnlyAllowedGroups - Benutzergruppen mit schreibgeschütztem Zugriff
editAllowedGroups - Benutzergruppen mit Bearbeitungsrechten
readOnlyAllowedUsers - Liste der Benutzer, die den Inhalt der Website nur lesen können
editAllowedUsers - Eine Liste der Benutzer mit Bearbeitungsrechten

Innerhalb einer einzigen Vorlage können alle oben genannten Parameter gleichzeitig verwendet werden, daher zeigt die Einrückung ihre hierarchische Position in Bezug auf die Rechte an. Mehr dazu erfährst du in der Beschreibung der einzelnen Parameter, wo zudem Beispiele genannt werden.

editAllowedUsers

Mit diesem Parameter wird eine reguläre Vorlage in eine Liste von Benutzern umgewandelt. Jeder Benutzer, dessen Name in diesem Parameter angegeben ist, verfügt über das Recht, die Seite zu bearbeiten, in die die Vorlage mit diesem Parameter eingefügt wird. Und auch alle Seiten, die ihn im Parameter isProtectedBy verwenden. Wenn mehr als ein Benutzer angegeben wird, werden die Benutzernamen durch ein Komma getrennt.

Einfaches Beispiel für eine selbstgeschützte Seite (d.h. 'MyPage'), auf der im Code 'Template:Warning' verwendet wird:

{{Warning
|1=Diese Seite ist geschützt
|editAllowedUsers=John Doe, Jane Doe
}}

I can be used to protection another page, if the WikiText content use any template with the parameter 'isProtectedBy', where is as value name the self-protected page 'MyPage'. Siehe Beispiel:


| isProtectedBy = MyPage

Es kann (muss nicht!) von Page Form bearbeitet werden.

Denke daran, dass MediaWiki Transklusion verwendet. Wenn ein Bearbeiter diese Seite verwendet, kann es sein, dass weitere Seiten auf der Website freigeschaltet werden! AccessControl is used where the 'edit' action is only allowed for verified users. Erweiterungen ConfirmAccount und ConfirmEdit (CAPTCHA) empfohlen.

Verwendung der alten Syntax

Erstelle zunächst Benutzergruppen. Es kann eine beliebige Seite sein, die im Hauptnamensraum gespeichert ist, nur der Doppelpunkt muss nach dem ersten Wort im Namen stehen. Benutzerlisten können eine Seite im Namespace mit dem Titel "Abteilung" sein Jeder Benutzername erscheint als ein Listenelement.

* John Doe
* Jane Doe (ro)
Benutzernamen, die mit "(ro)" am Ende aufgeführt sind, können den geschützten Artikel nur lesen, aber nicht bearbeiten. Für andere Benutzergruppen kannst du eine weitere Mitgliederliste mit dem Namen Abteilung in einem anderen Namensraum erstellen. Beachte, dass der Name des Benutzers mit einem Großbuchstaben beginnen muss!
Beispiel Tag-Code
<accesscontrol>Administrators,IT:Department,Sales(ro)</accesscontrol>

Konfiguration

  • Überprüfe die Einstellungen in der Datei extension.json.

Diese können in LocalSettings.php festgelegt werden:

$wgAdminCanReadAll = true; // Administratoren können alle eingeschränkten Seiten lesen
  • Je nach Lokalisierung müssen für dein Wiki Seiten erstellt werden, auf die anonyme oder nicht autorisierte Benutzer umgeleitet werden. Du musst sie im Voraus erstellen, weil einige von ihnen nicht von einer anderen Seite aus auf die Seiten zugreifen können.
  • Die Sicherheit der Seite wird durch das Tag <accesscontrol> gewährleistet. Wenn kein Tag vorhanden oder die Seite leer ist, ist sie für angemeldete Benutzer, die die Seite lesen und bearbeiten können, frei zugänglich. Kein eingeloggter oder anonymer Benutzer hat nur Lesezugriff.
  • Mitglieder von Gruppen, die im Tag <accesscontrol> aufgeführt sind, können die Seite nur bearbeiten, wenn der Gruppentitel nicht mit "(ro)" aufgeführt ist und wenn sie in der Gruppenmitgliederliste keinen Nur-Lese-Zugriff eingestellt haben.
  • Standardmäßig ist die Variable $wgAdminCanReadAll auf true festgelegt, damit die Mitglieder der Gruppe Administrator die Seiten der Benutzergruppen in jedem Namensraum bearbeiten können.
Warnung Warnung: Wenn es auf false festgelegt ist, können Mitglieder der Gruppe "Administrator" keine Seiten lesen und bearbeiten, die mit dem Tag <accesscontrol> geschützt sind, was zu großen Problemen führen kann. Dies kann nur auf Code-Ebene behoben werden.

Vorsicht

Für Version < 4.1

MediaWiki Versions:
1.29 – 1.36

Wenn du dein MediaWiki aus irgendeinem Grund nicht auf Version 1.39 LTS aktualisieren kannst, kannst du weiterhin die Version 4.1 des form-support Branch verwenden. Wenn du ein Problem mit dem Update hast, weil irgendein Problem aufgetreten ist und deine Aktualisierung gesperrt hat, schreibe in die Diskussion. MediaWiki ist eine sehr komplexe Software, und manchmal kann ein kleiner Fehler für Admins ohne Programmiererfahrung ein großes Problem darstellen.

Eine neue Version (4.0) der Erweiterung im separaten Branch form-support wurde für die Verwendung mit dem Erweiterung:Seitenformulare entwickelt - als Accesslist kannst du jede Vorlage verwenden, die alte Syntax der Accesslists wird jedoch unterstützt.

Es wurden auch Änderungen für die Verwendung mit den VisualEditor vorgenommen.

Du kannst den Code von Git bekommen:

git clone -b form-support https://gerrit.wikimedia.org/r/p/mediawiki/extensions/AccessControl.git
Warnung Warnung: Die Versionen 3.x sind veraltet und ein Upgrade wird empfohlen, da diese Versionen vor dem Speichern des Codes nicht prüfen, ob die Vorlage sich selbst enthält. MediaWiki erlaubt es, das Ergebnis ist jedoch eine geschleifte und unzugängliche Seite. Die einzige Lösung dafür ist, die Erweiterung AccessControl zu deaktivieren, den problematischen Code von der Seite zu entfernen und dann wieder zu aktivieren.

If your MediaWiki Version (≥ 2.6) isn't recommend for use, because have not support of the maintainer.

MediaWiki Versions:
1.21 – 1.28

Es wird dringend empfohlen, die Version 2.5.1 zu verwenden.

Für Version < 2.3

  • Es existierte ein Problem in der Funktion fromTemplate(), das dazu führte, dass AccessControl die Tags von eingebundenen Seiten oder Vorlagen ignorierte. Eine Aktualisierung wird empfohlen!

Für Version ≥ 2.0

MediaWiki Versions:
1.18 – 1.20
Warnung Warnung: Ab Version 2.0 verwendet die Erweiterung keine Wiki-Benutzergruppen (außer sysop), sondern nur Gruppen, die durch Benutzerzugriffslisten erstellt werden!
  • Seiten können nur ein <accesscontrol> Element haben.
  • Wenn der/die Nutzer/in Mitglied mehrerer Gruppen ist, wird die Gruppe angenommen, die ihm/ihr mehr Zugang gewährt.
  • Diese Erweiterung verwendet einen MediaWiki-Hook, der immer dann aufgerufen wird, wenn ein Suchergebnis angezeigt wird. Das bedeutet, dass eine Seite, die mit einer ACL versehen ist, eine "Zugriff verweigert"-Meldung für Endnutzer/innen auslöst, die zufällig nach Text auf einer geschützten Seite suchen. Eine einfache Lösung ist es, Seiten, die AccessControl benötigen, in einen anderen Namensraum zu verschieben und dann die Suche nach diesem Namensraum zu deaktivieren. Das ist zwar kein wirklicher Fehler, aber ein unerwünschtes Verhalten. Klick hier für ein Beispiel, das eine Umgehung zeigt.
Warnung Warnung: MediaWiki >= 1.21 enthält ein neues Framework ContentHandler und die Erweiterungsversion 2.1 ist unbrauchbar. Verwende AccessControl Version 2.2, die für MediaWiki 1.21 und höher aktualisiert ist.

Für Version ≤ 1.3

MediaWiki Version:
1.17
  • Gruppen aus MediaWiki dürfen nicht in lokalisierter Form vorliegen! sysop kann nicht $2 sein, usw.
  • Eine Seite kann mehrere <accesscontrol> Elemente haben, wobei der Zugriff von Gruppen in jedem Tag akzeptiert wird.
  • Anonyme Nutzer/innen verfügen nicht über einen Zugang zu Seiten, die durch <accesscontrol>-Elemente geschützt sind.
  • Wenn Variable $wgAdminCanReadAll gleich true ist, haben Administratoren immer Bearbeitungsrechte.

MediaWiki Version Testing

Version 6.0 (basierend auf Branch form-support) wurde auf MediaWiki 1.39.2, der aktuellen stabilen Veröffentlichung des Langzeitsupports (November 2026), aktualisiert und getestet und in den Master Branch des Git-Repositorys eingefügt.
  • Version 4.1 aus Branch form-support des Git-Repositorys (siehe Link zum Klonen oben auf dieser Seite) wurde auf der alten Legacy-Version MediaWiki 1.35 mit langfristigem Support (September 2023) getestet. Diese Version wird empfohlen für die Verwendung auf MediaWiki 1.29< 1.35

Geschichte

Die erste Version dieser Erweiterung (1.x) basierte auf Group Based Access Control , jedoch ohne die Fehler, die das Original hatte.[1]

  • Version 4.0 ist veraltet (phab:T281848). Upgrade empfohlen.
  • Version 3.0.1 wurde auf MediaWiki 1.34.0 getestet, ist jedoch veraltet. Upgrade empfohlen.
  • Version 2.5.1 wurde auf MediaWiki 1.33.0-alpha (5eb97ec) getestet
  • Version 2.6 wurde auf MediaWiki 1.27.0-rc.0 (57f722a) getestet
  • Version 2.5 wurde auf MediaWiki 1.27.0 getestet (aus dem Git-Repository)
  • Version 2.5 wurde auf MediaWiki 1.22.9 getestet (aus dem Git-Repository)
  • Version 2.3 was tested on MediaWiki 1.22.0 (from git repository)
  • Version 2.2 was tested on MediaWiki 1.22.0 (from git repository)
  • Version 2.0 wurde auf MediaWiki 1.19-alpha getestet (aus dem SVN-Repository)
  • Version 1.2 wurde auf MediaWiki 1.15.5-1 getestet (aus dem Debian-Repository)
  • Version 1.1 wurde auf MediaWiki 1.16.0(b3) getestet Works fine, except that it needed a minor change to line 358 of AccessControl.php (remove '&' from parameter to function controlEditAccess()). Wenn eine Seite auf einem Linux-Server angezeigt wird, werden die Tags ‎<accesscontrol> angezeigt. Auf einem Windows-Server werden die Tags jedoch nicht angezeigt und es ist in Ordnung! Ich habe es immer noch nicht herausgefunden, aber für meine Anwendung ist es in Ordnung.
  • Version 1.1 wurde auf MediaWiki 1.15 getestet
  • Die Version 1.0 dieser Erweiterung wurde getestet und funktioniert einwandfrei mit MediaWiki > 1.12.x.
  • Version 1.1 getestet auf MediaWiki 1.16.1 mit neuem Patch von http://git.felk.cvut.cz/pub/git?p=accesscontrol.git;a=commitdiff;h=2f678deed0e4e4f77620e391c94559c7b50102a9

Siehe auch

Anmerkungen

  1. Im Gegensatz zu Group Based Access Control werden Doppelkommas nicht verwendet, um den Inhalt eines ‎<accesscontrol>-Tags aufzuteilen, wenn mehrere Zugangslisten verwendet werden. Es ist nur ein Komma erforderlich. Und es ist nicht notwendig, das ,, Trennzeichen am Ende des Elementinhalts zu verwenden.