Erweiterung:AccessControl

This page is a translated version of the page Extension:AccessControl and the translation is 44% 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 52 (Ranked 96th)
Ü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 has been developed for this purpose.

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

  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 der Historie ein Stück Rohinhalt angezeigt. Wenn der <accesscontrol>-Tag am Anfang platziert wurde, kann ein potenzieller Angreifer die Namen der beitragenden Nutzer sehen!
Listings & Suche
Wenn nichts anderes angegeben ist, wird der Nutzer weggeleitet, wenn eine Seite mit geschütztem Inhalt in den Suchergebnissen existiert. Seit der Erweiterungsversion 2.5 kann auch die Suche erlaubt werden. Es sollte jedoch bedacht werden, dass die angezeigten Suchergebnisse sensible Daten gefährden können. Tu daher in deinem Wiki keine sensiblen Daten, wie z. B. Passwörter, die durch eine Volltextsuche erlangt werden könnten, wenn das Durchsuchen der Inhalte von durch eine Zugangskontrolle geschützten Seiten erlaubt ist!
Inklusion/Transklusion, verwandte Rechte & andere Erweiterungen
Seiten, die den <accesscontrol>-Tag enthalten oder eine andere Seite einschließen, die durch den <accesscontrol>-Tag geschützt ist, sind sicher. Der <accesscontrol>-Tag wird vor der HTML-Konvertierung im rohen Wikitext verarbeitet.
  Warnung: Wenn du Erweiterung:DynamicPageList (Drittanbieter) verwendest, musst du wissen, dass diese Erweiterung aus 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, außerdem das Attribut view für ungeschützte Seiten. Erlaubte Aktionen für autorisierte Benutzer hängen von den Berechtigungseinstellungen von MediaWiki ab und dem Benutzernamen, der in der Zugriffsliste aufgeführt ist, die Seiten verwendet.
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: 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 zu möglichen Sicherheitsproblemen findest du auf der Seite Sicherheitsprobleme mit Autorisierungserweiterungen.

Funktionen

Seit Version 2.1 prüft die Erweiterung auch die eingebettete Seite oder Vorlage.
  • Easy to set up and simple to use.
  • No patches to MediaWiki core.
  • Unlimited groups.
  • Dual mode access control:
    • View control.
    • Edit control, including restrictions on manual edit access when using action=edit in the URL.
  • User groups may use any namespace.
    • Namespaces with group lists may be protected by another extension.
  • MediaWiki sysop group may view and edit the protected pages.
    • Controlled by extension variable $wgAdminCanReadAll
  • Access may be granted to multiple groups
  • Read-only access may be granted to both groups and individual users.
  • Unauthorized users can use the search feature only if is it allowed.

Siehe wie diese Erweiterung die Anforderungen an die Sicherheit einer Website erfüllt.

Dokumentation

Handbuch (vorerst in tschechischer Sprache) hier als Wikiseite, ist jedoch 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: Lokale Einstellungsdatei

  • First check that you have set these variables in the LocalSettings.php file. If not, set them:
$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' );
Is recommend unavailable the Special pages, which may be used to compromitation the content of your wiki by anonymous bots or users. Read 'README' file, where is example protection code for LocalSettings.php
  Warnung: Watch out for the $wgAccessControlRedirect variable! This is only for developers to get a view at the contents of the debug messages, if needed. In production must be value every false.

Step 2: Read manual

Version 6.0 supports the old syntax of this extension. New syntax based on template parameters is very sophisticated. But for base use we can still use the AccessList created by the old syntax, and protect pages by element accesscontrol.

Using

The new version has a new access rights setting system, based on template parameterization. If the parser encounters any of the following parameters while processing a template, it will call AccessControl to check if the user has access to the content.

isProtectedBy - list of user groups
readOnlyAllowedGroups - user groups with read-only access
editAllowedGroups - user groups with edit access
readOnlyAllowedUsers - list of users who can only read the content of the site
editAllowedUsers - a list of users with editing rights

Within a single template, all of the above parameters can be used at the same time, so the indentation indicates their hierarchical position in terms of rights. You will learn more in the description of each parameter, where examples will also be given.

editAllowedUsers

Using this parameter turns a regular template into a list of users. Each user whose name is specified in this parameter will have the right to edit the page into which the template with this parameter will be inserted. And also all pages that use it in the isProtectedBy parameter. If more than one user is specified, their usernames are separated by a comma.

Simple example self-protected page (i.e. 'MyPage') where is in code used 'Template:Warning':

{{Warning
| 1 = This page is protected
| editAllowedUsers = John Doe, Jane Doe
}}

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


| isProtectedBy = MyPage

It can be (not must!) edited by Page Form.

Remember that MediaWiki uses transclusion. If anybody editor use this page, for tranclusion, may unavailabeled more pages in site! AccessControl is for using where is action 'edit' only for verified users allowed. Extensions ConfirmAccount and ConfirmEdit (CAPTCHA) recommend.

Using of the old syntax

First create User Groups. It may be any page stored in the main namespace, only colon must be after first word in the name. User lists can be a page in the namespace titled "Department" Each username appears as a list item.

* 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!
Example tag code
<accesscontrol>Administrators,IT:Department,Sales(ro)</accesscontrol>

Configuration

  • Check the settings in extension.json file.

Diese können in LocalSettings.php festgelegt werden:

$wgAdminCanReadAll = true;			// sysop users can read all restricted pages
  • 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.
  • The safety of the page is provided by the <accesscontrol> tag. If there isn't a tag or the page is empty, it's freely accessible to logged-in users that can read and edit the page. No user, logged in or anonymous, will have read-only access.
  • Members from groups listed in the <accesscontrol> tag can edit the page only if the group title isn't listed with "(ro)" and if they don't have read only access set in the group member list.
  • By default the variable $wgAdminCanReadAll is set to true so that members of sysop can edit user group pages in any namespace.
  Warnung: Wenn sie auf false festgelegt ist, können Mitglieder von sysop keine mit dem <accesscontrol>-Tag geschützten Seiten lesen und bearbeiten, was zu großen Problemen führen kann. Dies kann nur auf Code-Ebene behoben werden. This can only be remedied on the code level.

Attention

For version < 4.1

MediaWiki Versions:
1.29 – 1.36

If for some reason you cannot upgrade your MediaWiki to version 1.39 LTS, you can continue to use version 4.1 of the form-support branch. If you have a problem with the update, because any problem occurred and blocked your actualization, write in the discussion. MediaWiki is very complexity software, and sometime a little bug may be as big problem for admins without the programming experiences.

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

Auch für die Verwendung mit dem VisualEditor wurden Änderungen vorgenommen.

Du kannst den Code von Git bekommen:

git clone -b form-support https://gerrit.wikimedia.org/r/p/mediawiki/extensions/AccessControl.git
  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 für dieses Problem ist, die AccessControl-Erweiterung 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 gab ein Problem in der Funktion fromTemplate(), das dazu führte, dass AccessControl Tags von eingebundenen Seiten oder Vorlagen ignorierte. Eine Aktualisierung wird empfohlen!

Für Version ≥ 2.0

MediaWiki Versions:
1.18 – 1.20
  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 Namespace zu verschieben und dann die Suche nach diesem Namespace zu deaktivieren. Das ist zwar kein wirklicher Fehler, aber ein unerwünschtes Verhalten. Klicke hier für ein Beispiel, das eine Lösung zeigt.
  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 wurde.

Für Version ≤ 1.3

MediaWiki Version:
1.17
  • Gruppen aus MediaWiki dürfen nicht in lokalisierter Form vorliegen! sysop kann nicht Správce sein, usw.
  • Eine Seite kann mehrere <accesscontrol>-Elemente haben, wobei der Zugriff von Gruppen in jedem Tag akzeptiert wird.
  • Anonyme Benutzer/innen haben keinen Zugriff auf Seiten, die durch <accesscontrol>-Elemente geschützt sind.
  • Wenn die Variable $wgAdminCanReadAll wahr ist, haben Sysops immer Bearbeitungsrechte.

MediaWiki Version Testing

Version 6.0 (based on branch form-support) was actualized and tested on MediaWiki 1.39.2 the current stable release of long-term support (November 2026), and merged into master branch of git repository.
  • Version 4.1 aus dem Zweig form-support des Git-Repositorys (siehe Link zum Klonen oben auf dieser Seite) wurde auf MediaWiki 1.35 der aktuellen stabilen Version des Langzeitsupports (September 2023) getestet This version is recommend for use on 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 in MediaWiki 1.33.0-alpha (5eb97ec) getestet
  • Version 2.6 wurde in 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 was tested on MediaWiki 1.22.9 (from 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 was tested on MediaWiki 1.19-alpha (from SVN repository)
  • Version 1.2 was tested on MediaWiki 1.15.5-1 (from Debian repository)
  • Version 1.1 was tested on MediaWiki 1.16.0(b3). Works fine, except that it needed a minor change to line 358 of AccessControl.php (remove '&' from parameter to function controlEditAccess()). When viewing a page on a Linux server, the ‎<accesscontrol> tags show. But on a Windows server, the tags don't show and it is fine! Still haven't figured that one out, but it is ok for my application.
  • Version 1.1 was tested on MediaWiki 1.15
  • Version 1.0 of this extension has been tested and works fine on MediaWiki > 1.12.x.
  • Version 1.1 tested on MediaWiki 1.16.1 with new patch from 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 keine Doppelkommas verwendet, um den Inhalt eines ‎<accesscontrol>-Tags zu trennen, wenn mehrere Zugriffslisten verwendet werden. Es ist nur ein Komma erforderlich. Und es ist nicht notwendig, das Trennzeichen ',,' am Ende des Elementinhalts zu verwenden.