Extension:AccessControl
Si vous avez besoin de restrictions d'accès par page ou par portion de page, il vous est conseillé d'installer un paquet de gestion du contenu approprié. MediaWiki n'est pas écrit pour fournir des restrictions d'accès sur une page donnée, et la plupart des contournements ou patchs promettant de l'ajouter auront de fortes chances d'avoir des failles, ce qui pourrait mener à des divulgations de données confidentielles. Nous ne sommes pas responsable d'une fuite quelconque.
Pour plus de détails, voir Problèmes de sécurité avec les extensions d'autorisation |
![]() État de la version : stable |
|
---|---|
Implémentation | Droits utilisateur , Extension de l'analyseur , Balise |
Description | Permet de restreindre l'accès à des pages spécifiques en fonction de groupes internes ou de listes de groupes à partir de l'espace utilisateur |
Auteur(s) | Aleš Kapica (Wantdiscussion) |
Dernière version | 6.0 (2023-03-01) |
Politique de compatibilité | Le master conserve la compatibilité arrière. |
MediaWiki | 1.34+ |
PHP | 7.4+ |
Modifie la base de données |
Non |
Licence | Licence publique générale GNU v2.0 ou supérieur |
Téléchargement | |
Exemple | Support DCEwiki or Thewoodcraft.org |
|
|
<accesscontrol> (not need anymore) |
|
Téléchargements trimestriels | 58 (Ranked 89th) |
Traduire l’extension AccessControl sur translatewiki.net si elle y est disponible | |
Problèmes | Tâches ouvertes · Signaler un bogue |
L'extension AccessControl permet de restreindre l'accès à des pages spécifiques en fonction de groupes internes ou de listes de groupes depuis l'espace utilisateur.
MediaWiki dans son état par défaut n'est pas conçu comme un système de gestion de contenu (CMS), mais lorsqu'il est utilisé comme intranet d'entreprise ou scolaire, cela est nécessaire pour protéger les données sensibles. AccessControl a été développé à cet effet
Comment cette extension répond aux exigences de sécurité du site
- Flux Atom/RSS, diff et liens de révision
- le contenu de la page est protégé, mais lors de l'ouverture d'une page de l'historique, un élément de contenu brut apparaîtra. Si la balise <accesscontrol> a été placée au début, un attaquant potentiel pourra peut-être voir les noms des utilisateurs contributeurs !
- Annonces et recherche
- Sauf indication contraire, s'il existe une page avec un contenu protégé dans les résultats de recherche, l'utilisateur est redirigé. Depuis la version 2.5 de l'extension, la recherche peut également être autorisée. Mais il ne faut pas oublier que les résultats de recherche affichés peuvent compromettre des données sensibles. Par conséquent, n'écrivez pas dans votre wiki des informations sensibles, telles que des mots de passe, qui pourraient être obtenues par une recherche plein texte si la recherche dans le contenu de pages protégées par un contrôle d'accès est autorisée !
- Inclusion/transclusion, droits connexes et autres extensions
- les pages contenant la balise <accesscontrol>, ou incluant une autre page protégée par la balise <accesscontrol>, sont sécurisées. La balise <accesscontrol> est traitée en texte wiki brut avant la conversion HTML.
- Redirections
- Le problème de redirection a été réparé dans la version 1.1
- API & liens d'action
- Pour chaque utilisateur anonyme, la classe d'action est automatiquement définie sur
false
, en plus de l'attribut view pour les pages non protégées. Les actions autorisées pour les utilisateurs autorisés dépendent des paramètres d'autorisations de MediaWiki et du nom d'utilisateur répertorié dans la liste d'accès que les pages utilisent. - Modifier la section et les pages de surveillance
- les options ne sont disponibles que pour les utilisateurs enregistrés s'ils sont connectés et figurent sur la liste d'accès de sécurité.
- Fichiers et images
- Export XML (Special:Export)
- Attention : AccessControl version < 2.0, était basé sur un hook non protégé du côté de MediaWiki avant d'exporter les pages en code brut. Par conséquent, si vous utilisez AccessControl version < 2.0, vous devez interdire la page spéciale pour interdire l'exportation des pages depuis MediaWiki.
- Porte dérobée de l'auteur
- L'extension AccessControl n'a pas de porte dérobée !
- Mise en cache
- Je recommande de désactiver la mise en cache. Voir les paragraphes précédents.
Plus d'informations sur les problèmes potentiels concernant la sécurité sont sur la page Security issues with authorization extensions .
Fonctionnalités
- Facile à installer et simple à utiliser.
- Pas de correctifs pour le cœur de MediaWiki.
- Groupes illimités.
- Contrôle d'accès en mode double :
- Afficher le contrôle.
- Modifier le contrôle, y compris les restrictions sur l'accès à la modification manuelle lors de l'utilisation de action=edit dans l'URL.
- Les groupes d'utilisateurs peuvent utiliser n'importe quel espace de noms.
- Les espaces de noms avec des listes de groupes peuvent être protégés par une autre extension.
- Le groupe d'administrateurs MediaWiki peut afficher et modifier les pages protégées.
- Contrôlé par la variable d'extension
$wgAdminCanReadAll
- Contrôlé par la variable d'extension
- L'accès peut être accordé à plusieurs groupes
- L'accès en lecture seule peut être accordé aux groupes et aux utilisateurs individuels.
- Les utilisateurs non autorisés peuvent utiliser la fonction de recherche uniquement si cela est autorisé. Voir comment cette extension répond aux exigences de sécurité du site.
Documentation
Manual (in Czech language for now) here as wiki page, but is prepared for translation. If you want to contribute to creating an English version, you must donate any amount of money to pay for a commercial translator, because the author does not have the time and skills for it. The man page (for now only Czech version) is part of the source code, and can be imported into your private MediaWiki instance if you want.
Installation
Étape 1 : Fichier de paramètres locaux
- 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;
- Ajoutez les lignes suivantes au bas de votre LocalSettings.php :
wfLoadExtension( 'AccessControl' );
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 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
- readOnlyAllowedUsers - List of users who can only read the content of the site
- editAllowedGroups - User groups with edit access
- readOnlyAllowedGroups - User groups with read-only access
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 the 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.
'edit'
action is only allowed for verified users. 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)
- Les noms d'utilisateurs listés avec (ro) à la fin peuvent seulement lire l'article protégé, pas le modifier. Pour les autres groupes d'utilisateurs, vous pouvez créer une autre liste de membres avec le nom Département dans un autre espace de noms. Attention, le nom d'utilisateur doit commencer par une majuscule !
- Exemple de code de balise
<accesscontrol>Administrators,IT:Department,Sales(ro)</accesscontrol>
Configuration
- Vérifiez les paramètres dans le fichier
extension.json
.
These can be set in LocalSettings.php:
$wgAdminCanReadAll = true; // Administrators can read all restricted pages
- Selon la localisation, votre wiki a besoin de pages créées vers lesquelles les utilisateurs anonymes ou non autorisés seront redirigés. Vous devez les créer à l'avance car certains d'entre eux ne peuvent pas accéder à ces pages depuis une autre page.
- La sécurité de la page est assurée par la balise <accesscontrol>. S'il n'y a pas de balise ou si la page est vide, elle est librement accessible aux utilisateurs connectés qui peuvent lire et modifier la page. Aucun utilisateur, connecté ou anonyme, n'aura accès en lecture seule.
- Les membres des groupes répertoriés dans la balise <accesscontrol> peuvent modifier la page uniquement si le titre du groupe n'est pas répertorié avec "(ro)" et s'ils ne disposent pas d'un accès en lecture seule défini dans la liste des membres du groupe.
- Par défaut, la variable
$wgAdminCanReadAll
est définie surtrue
afin que les membres de sysop puissent modifier les pages du groupe d'utilisateurs dans n'importe quel espace de noms.
Attention
For version < 4.1
Versions de MediaWiki : | 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.
form-support
a été développée pour être utilisée avec l'Extension:Page Forms - en tant que liste d'accès, vous pouvez utiliser n'importe quel modèle, mais l'ancienne syntaxe des listes d'accès est prise en charge.
Des modifications pour l'utilisation avec le VisualEditor ont également été mises en œuvre.
Vous pouvez obtenir le code depuis git :
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.
Versions de MediaWiki : | 1.21 – 1.28 |
Il est fortement recommandé d'utiliser la version 2.5.1.
Pour les versions < 2.3
- Il y avait un problème dans la fonction fromTemplate() qui faisait qu'AccessControl ignorait les balises des pages ou des modèles inclus. L'actualisation est recommandée !
Pour les versions ≥ 2.0
Versions de MediaWiki : | 1.18 – 1.20 |
- Les pages ne peuvent avoir qu'un seul élément <accesscontrol>.
- Si l'utilisateur est membre de plusieurs groupes, le groupe qui lui donne le plus d'accès est supposé.
- This extension uses a MediaWiki hook that is called whenever a search result is displayed. This means that a page that has an ACL will trigger an "Access Denied" message for end users who happen to search for text contained in a protected page. A simple solution is to put pages that require AccessControl into another namespace and then disable searching for that namespace. Although this isn't really a bug, it is undesirable behavior. Click here for an example showing a work around.
Pour les versions ≤ 1.3
Version de MediaWiki : | ≤ 1.17 |
- Les groupes de MediaWiki ne doivent pas être sous forme localisée !
sysop
ne peut pas êtreSprávce
, etc. - Une page peut contenir plusieurs éléments <accesscontrol>, l'accès étant accepté à partir de groupes dans n'importe quelle balise.
- Les utilisateurs anonymes n'ont pas accès aux pages protégées par les éléments <accesscontrol>.
- Si la variable
$wgAdminCanReadAll
esttrue
, les sysops ont toujours un accès en modification.
Test de Version MediaWiki
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.- La version 4.1 de la branche
form-support
du dépôt git (voir le lien pour cloner en haut de cette page) a été testée sur MediaWiki 1.35 la version stable actuelle de support à long terme (septembre 2023) This version is recommend for use on MediaWiki 1.29< 1.35
Historique
La première version de cette extension (1.x) était basée sur Group Based Access Control , mais sans les bogues de l'original.[1]
- La version 4.0 est obsolète (phab:T281848). Mise à niveau recommandée.
- La version 3.0.1 a été testée sur MediaWiki 1.34.0, mais est obsolète. Mise à niveau recommandée.
- La version 2.5.1 a été testée sur MediaWiki 1.33.0-alpha (5eb97ec)
- La version 2.6 a été testée sur MediaWiki 1.27.0-rc.0 (57f722a)
- La version 2.5 a été testée sur MediaWiki 1.27.0 (depuis le dépôt git)
- 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
Voir aussi
- Manuel:Empêcher l'accès
- Extension:Semantic ACL
- PageOwnership - Multi-layered permission manager, whole wiki or specific pages, with friendly interface
Notes
- ↑
Contrairement à Group Based Access Control , les doubles virgules ne sont pas utilisées pour diviser le contenu d'une balise
<accesscontrol>
lorsque plusieurs listes d'accès sont utilisées. Une seule virgule est requise. Et n'est pas nécessaire d'utiliser le séparateur,,
à la fin du contenu de l'élément.
Cette extension est incluse dans les fermes de wikis ou les hôtes suivants et / ou les paquets : Cette liste ne fait pas autorité. Certaines fermes de wikis ou hôtes et / ou paquets peuvent contenir cette extension même s'ils ne sont pas listés ici. Vérifiez toujours cela avec votre ferme de wikis ou votre hôte ou votre paquet avant de confirmer. |