Erweiterung:AccessControl
Wenn du Zugriffsbeschränkungen für einzelne Seiten oder Teilbereiche benötigst, solltest du ein entsprechendes Content-Management-Paket installieren. MediaWiki wurde nicht so geschrieben, dass es Zugriffsbeschränkungen für einzelne Seiten bietet, und fast alle Hacks oder Patches, die dies versprechen, haben wahrscheinlich irgendwo einen Fehler, der dazu führen könnte, dass vertrauliche Daten offengelegt werden. Wir sind nicht dafür verantwortlich, dass etwas durchsickert.
Für weitere Details siehe Security issues with authorisation extensions |
![]() 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 |
|
|
<accesscontrol> (not need anymore) |
|
Quarterly downloads | 58 (Ranked 89th) |
Ü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
- 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.
- 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
- 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
- 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
- Gesteuert durch die Variable
- 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' );
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
- readOnlyAllowedUsers - Liste der Benutzer, die den Inhalt der Website nur lesen können
- editAllowedGroups - Benutzergruppen mit Bearbeitungsrechten
- readOnlyAllowedGroups - Benutzergruppen mit schreibgeschütztem Zugriff
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.
'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
auftrue
festgelegt, damit die Mitglieder der Gruppe Administrator die Seiten der Benutzergruppen in jedem Namensraum bearbeiten können.
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.
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
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 |
- 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.
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
gleichtrue
ist, haben Administratoren immer Bearbeitungsrechte.
MediaWiki Version Testing
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
- Zugriff verhindern
- Extension:Semantic ACL
- PageOwnership - Mehrschichtige Rechteverwaltung, ganzes Wiki oder bestimmte Seiten, mit freundlicher Oberfläche
Anmerkungen
- ↑
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.
Diese Erweiterung ist in den folgenden Softwarepaketen enthalten und/oder wird von den folgenden Wiki-Farmen, bzw. Wiki-Hostern verwendet: Dies ist keine maßgebliche Liste. Softwarepakete und/oder Wiki-Farmen, bzw. Wiki-Hoster nutzen diese Erweiterung ggf., obwohl sie nicht in dieser Liste enthalten sind. Prüfe daher stets die Nutzung im verwendeten Softwarepaket und/oder bei der Wiki-Farm, bzw. dem Wiki-Hoster. |