Extension:AccessControl
Sayfa başına veya kısmi sayfa erişim kısıtlamalarına ihtiyacınız varsa, uygun bir içerik yönetimi paketi yüklemeniz önerilir. MediaWiki, sayfa başına erişim kısıtlamaları sağlamak için yazılmadı ve bunları eklemeyi vaat eden hemen hemen tüm hackler veya yamalar, muhtemelen bir yerlerde kusurlara sahip olacak ve bu da gizli verilerin ifşasına yol açabilecek. Sızan herhangi bir şeyden sorumlu değiliz.
Daha fazla ayrıntı için Security issues with authorization extensions sayfasına bakın |
![]() Sürüm durumu: kararlı |
|
---|---|
Uygulama | Kullanıcı hakları , Ayrıştırıcı uzantısı , Etiket |
Açıklama | Kullanıcı gruplarından dahili gruplara veya grup listelerine dayalı olarak belirli sayfalara erişimin kısıtlanmasına izin verir |
Yazar(lar) | Aleš Kapica (Wantmesaj) |
En son sürüm | 4.1 (2021-05-13) |
Uyumluluk politikası | Master, geriye dönük uyumluluğu korur. |
MediaWiki | 1.29+ |
PHP | 7.2+ |
Veritabanı değişiklikleri | Evet |
Lisans | GNU Genel Kamu Lisansı 2.0 veya üstü |
İndir | |
Örnek | Support DCEwiki or Thewoodcraft.org |
|
|
<accesscontrol> (not need anymore) |
|
Quarterly downloads | 33 (Ranked 139th) |
Translatewiki.net adresinde mevcutsa, AccessControl uzantısını çevirin | |
Sorunlar | Açık görevler · Hata bildir |
AccessControl uzantısı, dahili gruplara veya grup listelerine dayalı olarak belirli sayfalara kullanıcı alanından erişimi kısıtlar.
MediaWiki varsayılan durumunda bir İçerik Yönetim Sistemi (CMS) olarak tasarlanmamıştır, ancak kurumsal veya okul interneti olarak kullanıldığında hassas verilerin korunması gerekir. AccessControl bu amaç için geliştirilmiştir. AccessControl has been developed for this purpose.
Bu uzantı site güvenliği gereksinimlerini nasıl karşılıyor
- Atom/RSS beslemeleri, fark ve düzeltme bağlantıları
- Sayfa içeriği korunur, ancak geçmişten bir sayfa açıldığında bir ham içerik görünür. <accesscontrol> etiketi en başa yerleştirildiyse, potansiyel bir saldırgan katkıda bulunan kullanıcıların adlarını görebilir!
- Listeler ve arama
- Aksi belirtilmedikçe, arama sonuçlarında korumalı içeriğe sahip herhangi bir sayfa varsa, kullanıcı yönlendirilir. Uzantı 2.5 sürümünden beri, aramaya da izin verilebilir. Ancak, görüntülenen arama sonuçlarının hassas verilerden ödün verebileceği akılda tutulmalıdır. Bu nedenle, bir erişim kontrolü ile korunan sayfaların içeriğinde arama yapılmasına izin verilirse, tam metin araması yoluyla elde edilebilecek, viki gibi parola gibi hassas bilgileri yazmayın!
- Ekleme/dönüştürme, ilgili haklar ve diğer uzantılar
- <accesscontrol> etiketini içeren veya <accesscontrol> etiketi tarafından korunan başka bir sayfa içeren sayfalar güvenlidir. <accesscontrol> etiketi, HTML dönüşümünden önce ham vikimetinde işlenir. Erişim kontrolü ile korunan sayfalara izin verilir!
- Yönlendirmeler
- Yeniden yönlendirme sorunu sürüm 1.1'de onarıldı
- API ve eylem bağlantıları
- Her anonim kullanıcı için, korumasız sayfaların görünüm özelliğinin yanı sıra, eylem sınıfı otomatik olarak false değerine ayarlanır. Yetkili kullanıcılar için izin verilen eylemler, MediaWiki'nin izin ayarlarına ve erişim listesi sayfalarında listelenen kullanıcı adına bağlıdır.
- Bölümü ve izleme sayfalarını düzenle
- Seçenekler yalnızca kayıtlı kullanıcılar giriş yapmışsa ve güvenlik erişim listesindeyse kullanılabilir.
- Dosyalar ve resimler
- XML aktarımı (Special:Export)
- Uyarı: AccessControl sürüm < 2.0, sayfaları ham koda vermeden önce MediaWiki tarafından korunmayan bir kancaya dayanıyordu. Bu nedenle, AccessControl < 2.0 sürümünü kullanıyorsanız, sayfaların MediaWiki'den dışa aktarılmasını yasaklamak için özel sayfayı yasaklamanız gerekir. Therefore, if you use AccessControl version < 2.0, you must prohibit the special page to prohibit exporting the pages from MediaWiki.
- Yazar arka kapı
- AccessControl uzantısı arka kapısı yok!
- Önbellek
- Önbelleği kapatmanızı öneririm. Önceki paragraflara bakınız.
Güvenlikle ilgili olası sorunlar hakkında daha fazla bilgi Yetkilendirme uzantılarıyla ilgili güvenlik sorunları sayfada.
Özellikler
- Kurulumu kolay ve kullanımı basit.
- MediaWiki çekirdeğinde yama yok.
- Sınırsız grup.
- Çift modlu erişim kontrolü:
- Kontrolü görünüm.
- URL'de action=edit kullanılırken el düzenleme erişimiyle ilgili kısıtlamalar da dahil olmak üzere düzenleme kontrolü.
- Kullanıcı grupları herhangi bir ad alanını kullanabilir.
- Grup listelerine sahip ad alanları başka bir uzantı tarafından korunabilir.
- MediaWiki hizmetli grubu, korunan sayfaları görüntüleyebilir ve düzenleyebilir.
$wgAdminCanReadAll
uzantı değişkeni tarafından kontrol edilir
- Birden fazla gruba erişim izni verilebilir
- Hem gruplara hem de bireysel kullanıcılara salt okunur erişim verilebilir.
- Yetkisiz kullanıcılar arama özelliğini ancak izin veriliyorsa kullanabilir. Bu uzantı site güvenliği gereksinimlerini nasıl karşılıyor bölümüne bakın.
See how this extension meets the requirements for site security.
Belgelendirme
Kılavuz (şimdilik Çek dilinde) burada viki sayfası olarak, ancak çeviri için hazırlanmıştır. Bir İngilizce sürüm oluşturmaya katkıda bulunmak istiyorsanız, ticari bir çevirmene ödeme yapmak için herhangi bir para bağışlamalısınız, çünkü yazarın bunun için zamanı ve becerisi yoktur. Kılavuz sayfası (şimdilik yalnızca Çekçe sürümü) kaynak kodunun bir parçasıdır ve isterseniz özel MediaWiki örneğinize aktarılabilir. 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.
Kurulum
4.0 uzantısının ayrı form-support
dalındaki yeni sürümü Extension:Page Forms ile kullanılmak üzere geliştirildi. Erişim listesi olarak herhangi bir şablonu kullanabilirsiniz, ancak erişim listelerinin eski sözdizimi desteklenir. $2 ile kullanım değişiklikleri de uygulandı.
Changes for using with the VisualEditor was implemented too.
Git'ten kod alabilirsiniz:
git clone -b form-support https://gerrit.wikimedia.org/r/p/mediawiki/extensions/AccessControl.git
1. Adım: Yerel Ayarlar Dosyası
- LocalSettings.php dosyanızın altına aşağıdaki satırları ekleyin:
require_once "extensions/AccessControl/AccessControl.php";
#if this one can't run it you can try this
wfLoadExtension( 'AccessControl' );
- Grup oluşturmak amacıyla LocalSettings.php dosyasına bir ad alanı ekleyin. If you're not sure which namespace ID to use, then use 730 and 731 as detailed at the extension defalt namespaces listing. See step 2 for more information on how to do this.
- Daha fazla bilgi için Manual:Using custom namespaces sayfasına bakın.
- AccessControl.php'deki ayarları kontrol edin. Bunlar LocalSettings.php'de ayarlanabilir:
These can be set in LocalSettings.php:
$wgAdminCanReadAll = true; // sysop users can read all restricted pages
$wgAccessControlRedirect = false; // false disables AccessControl's redirection,
// thus no longer controlling access based on
// the "<accesscontrol>" tag.
2. Adım: Kullanıcı Grupları Oluşturun
- Bu yöntemde en son sürümde değişiklikler var, lütfen bu sayfanın altındaki not 1'e bakın. (Kullanıcı listeleri ana ad alanında saklanmalıdır).
Kullanıcı grupları, varsayılan ad alanı dışındaki bir ad alanının parçası olan standart viki sayfalarıdır. Kullanım kolaylığı için, erişim kontrol listesi sayfalarının açık bir şekilde yönetilmesi amacıyla belirli bir özel ad alanının oluşturulması önerilir. For your custom namespace, if you're not sure which namespace ID to use, then use 730 and 731 as detailed at the extension defalt namespaces listing. For your convenience, IDs 730-739 are reserved for your use for this extension.
// Define constants for my additional namespaces.
define("NS_ACCESSCONTROLGROUP", 730); // This MUST be even.
define("NS_ACCESSCONTROLGROUP_TALK", 731); // This MUST be the following odd integer.
// Add namespaces.
$wgExtraNamespaces[NS_ACCESSCONTROLGROUP] = "AccessControlGroup";
$wgExtraNamespaces[NS_ACCESSCONTROLGROUP_TALK] = "AccessControlGroup_talk"; // Note underscores in the namespace name.
- Herhangi bir ad alanında bir kullanıcı listesiyle bir viki sayfası oluşturun[1]
- Adında iki nokta üst üste (:) bulunan bir sayfa oluşturmak yeterli değildir, bu uzantı bir ad alanı ve ad alanları içinde bir veya daha fazla sayfanın kullanılmasını gerektirir
- Sayfa Adı Örneği: My:Group
- Ad alanı: My
- Grup adı: Group
- Bu, kullanıcı grubunun adıdır
- Kullanıcılar, madde işaretli bir listede gruba eklenir
- Sayfa İçeriği Örneği
- IT ad alanının var olduğunu varsayalım
- v3.0'da IT ad alanını da LocalSettings.php dosyasında kaydetmeniz gerektiğini unutmayın, ör.
$wgAccessControlNamespaces = array(NS_IT);
veyaextension.json
dosyasını değiştirin. Ayrıca IT: erişim kontrol etiketinde belirtilmemelidir, yalnızca "Departman"
- v3.0'da IT ad alanını da LocalSettings.php dosyasında kaydetmeniz gerektiğini unutmayın, ör.
- "Departman" başlıklı ad alanında bir sayfa oluşturun
- Grupta "John Doe" ve "Jane Doe" kullanıcıları oluşturun. Grup bilgileri "Departman" sayfasında yer almaktadır.
- Her kullanıcı adı bir liste öğesi olarak görünür.
- IT ad alanının var olduğunu varsayalım
* John Doe
* Jane Doe (ro)
- Sonunda "(ro)" ile listelenen kullanıcı adları yalnızca korumalı maddeyi okuyabilir, düzenleyemez. Diğer kullanıcı grupları için, başka bir ad alanında Department adıyla başka bir üye listesi oluşturabilirsiniz. Kullanıcı adının büyük harfle başlaması gerektiğini unutmayın!
- İpuçlar
- IT ad alanını korumak için Lockdown uzantısını kullanabilirsiniz, ancak onu korumak için <accesscontrol> etiketini de kullanabilirsiniz.
3. Adım: Ek Erişim Kontrolü
- Yerelleştirmeye bağlı olarak, vikinizin anonim veya yetkisiz kullanıcıların yönlendirileceği sayfalara ihtiyacı vardır. Bunları önceden oluşturmanız gerekir çünkü bazıları başka bir sayfadaki sayfalara erişemez.
- Sayfanın güvenliği & lt;accesscontrol> etiketi ile sağlanır. Bir etiket yoksa veya sayfa boşsa, sayfayı okuyabilen ve düzenleyebilen oturum açmış kullanıcılar için serbestçe erişilebilir. Oturum açmış veya anonim hiçbir kullanıcının salt okunur erişimi olmayacaktır.
- <accesscontrol> etiketinde listelenen grupların üyeleri, yalnızca grup başlığı "(ro)" ile listelenmemişse ve grup üye listesinde salt okunur erişim ayarlarına sahip değilse sayfayı düzenleyebilir.
- Varsayılan olarak
$wgAdminCanReadAll
değişkeni, sysop üyelerinin herhangi bir ad alanındaki kullanıcı grubu sayfalarını düzenleyebilmesi için true olarak ayarlanmıştır.
- Örnek etiket kodu
<accesscontrol>Administrators,IT:Department,Sales(ro)</accesscontrol>
<accesscontrol>Department</accesscontrol>
benim için çalıştı.Bu örnekte, "Administrators", "IT:Department" ve "Sales" gruplarındaki tüm kullanıcılar sayfayı okuyabilir, ancak yalnızca "Yöneticiler" grubundaki (varsa) ve "IT:Department" John Doe "kullanıcıları okuyabilir.
Erişimi Kontrol Etmek için Sayfalarda Kullanım
Bu kurulum için. Belirli kullanıcı grupları için bir sayfaya erişimi kısıtlamak için, içerik sayfasının üst kısmına <accesscontrol> etiketinin içeriği olarak izin verilen kullanıcı gruplarının adlarını (virgülle ayırarak) eklemeniz yeterlidir.
Dikkat
MediaWiki sürümleri: | 1.21 – 1.28 |
Sürüm 2.5.1'in kullanılması şiddetle tavsiye edilir.
< 2.3 sürümü için
- fromTemplate() işlevinde AccessControl'ün eklenen sayfalardaki veya şablonlardaki etiketleri yoksaymasına neden olan bir sorun oluştu. Gerçekleştirme tavsiye edilir!
≥ 2.0 sürümü için
MediaWiki sürümleri: | 1.18 – 1.20 |
- Sayfaların yalnızca bir <accesscontrol> öğesi olabilir.
- Kullanıcı birden fazla grubun üyesiyse, onlara daha fazla erişim sağlayan grubun olduğu varsayılır.
- Bu uzantı, bir arama sonucu görüntülendiğinde çağrılan bir MediaWiki kancası kullanır. Bu, ACL'ye sahip bir sayfanın, korumalı bir sayfada bulunan metni arayan son kullanıcılar için bir "Erişim Reddedildi" mesajını tetikleyeceği anlamına gelir. Basit bir çözüm, AccessControl gerektiren sayfaları başka bir ad alanına koymak ve ardından bu ad alanını aramayı devre dışı bırakmaktır. Bu gerçekten bir hata olmasa da, istenmeyen bir davranıştır. Çözümü gösteren bir örnek için buraya tıklayın.
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.
≤ 1.3 sürümü için
MediaWiki sürümü: | ≤ 1.17 |
- MediaWiki'deki gruplar yerelleştirilmiş biçimde olmamalıdır! sysop, Správce vb. olamaz.
- Bir sayfanın birden çok <accesscontrol> öğesi olabilir ve erişim herhangi bir etiketteki gruplardan kabul edilebilir.
- Anonim kullanıcıların <accesscontrol> öğeleriyle korunan sayfalara erişimi yoktur.
$wgAdminCanReadAll
değişkeni doğruysa, hizmetliler her zaman düzenleme erişimine sahiptir.
MediaWiki Sürüm Testi
form-support
dalından (bu sayfanın üst kısmındaki klon için bağlantıya bakın) 4.1 sürümü, uzun vadeli desteğin mevcut kararlı sürümü olan MediaWiki 1.35 üzerinde test edildi (Eylül 2023)- Sürüm 4.0, eski (phab:T281848). Yükseltme önerilir.
- Sürüm 3.0.1, MediaWiki 1.34.0 üzerinde test edildi, ancak artık kullanılmıyor. Yükseltme önerilir.
- 2.5.1 sürümü MediaWiki 1.33.0-alpha (5eb97ec) sürümünde test edildi
- 2.6 sürümü MediaWiki 1.27.0-rc.0 (57f722a) sürümünde test edildi
- 2.5 sürümü MediaWiki 1.27.0 sürümünde test edildi (Git deposundan)
- 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 MediaWikis > 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
Tarihçe
Bu uzantının (1.x) ilk sürümü Grup Tabanlı Erişim Kontrolü'ne dayanıyordu, ancak orijinalde hatalar olmadan.[2]
Ayrıca bakınız
Notlar
- ↑ Sürüm 2.0'dan itibaren, yalnızca ana ad alanında depolanan ACL'lerle çalışır. Ayrıca, yalnızca ana ad alanında bulunan sayfaları da koruyabilir. Bu davranışı düzeltmek için
$getUsersFromPages
ve$getContentPage
öğelerinde değişiklik yapılması gerekir. Uzantının ad alanlarıyla uyumlu yamalı sürümünü görmek için burayı tıklayın. - ↑ Grup Tabanlı Erişim Kontrolü'nün aksine, daha fazla erişim listesi kullanıldığında bir <accesscontrol> etiketinin içeriğini bölmek için çift virgül kullanılmaz. Yalnızca bir virgül gereklidir. Ve element içeriğinin sonunda ",," ayırıcısını kullanmak gerekli değildir.
This extension is included in the following packages and/or wiki farms: This is not an authoritative list. Some wiki farms/hosts may contain this extension even if they are not listed here. Always check with your wiki farms/hosts or bundle to confirm. |