Extension:TitleBlacklist
TitleBlacklist Sürüm durumu: kararlı |
|
---|---|
Uygulama | Kullanıcı hakları , API |
Açıklama | Normal ifade kara listesiyle eşleşen sayfaların oluşturulmasını engeller |
Yazar(lar) | Victor Vasiliev (VasilievVVmesaj) |
En son sürüm | 1.5.0 (Güncellemeler devam etmekte) |
Uyumluluk politikası | MediaWiki ile birlikte anlık görüntüler yayımlanır. Master geriye dönük olarak uyumlu değil. |
MediaWiki | 1.35+ |
PHP | 7.0+ |
Lisans | GNU Genel Kamu Lisansı 2.0 veya üstü |
İndir | |
|
|
|
|
Quarterly downloads | 54 (Ranked 82nd) |
Translatewiki.net adresinde mevcutsa, TitleBlacklist uzantısını çevirin | |
Sorunlar | Açık görevler · Hata bildir |
TitleBlacklist uzantısı, viki hizmetlilerin başlığı bir veya daha fazla düzenli ifadeler ile eşleşen sayfaların oluşturulmasını, taşınmasını ve yüklenmesini engellemesine ve hesap oluşturmayı engellemesine olanak tanır.
Kurulum
- Dosyaları indirin ve
extensions/
klasörünüzdekiTitleBlacklist
adlı dizine yerleştirin.
Developers and code contributors should install the extension from Git instead, using:cd extensions/
git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/TitleBlacklist - LocalSettings.php dosyanızın altına aşağıdaki kodu ekleyin:
wfLoadExtension( 'TitleBlacklist' );
- Engelleme listesi kaynaklarını yapılandırın (aşağıya bakın)
- Yapıldı – Uzantının başarıyla yüklendiğini doğrulamak için vikinizde Special:Version seçeneğine gidin.
$wgGroupPermissions['sysop']['tboverride'] = false;
kullanın.
Yapılandırma
$wgTitleBlacklistSources
- Başlık kara listesi kaynakları dizisi.
- array( name => source description ) biçiminde olmalıdır. Varsayılan olarak boş bir dizidir.
$wgTitleBlacklistUsernameSources
- Kullanıcı adı filtresi olarak çalışabilecek kaynakları ayarlar.
- "
*
" herkes içindir; false her şeyi devre dışı bırakır. - Belirli kaynaklarla sınırlamak istiyorsanız dizi kullanın (kaynak adı 1, kaynak adı 2). Bu, kara liste parçalanmasını önlemek için hesap oluşturma sisteminizi paylaştığınızda faydalı olabilir.
$wgTitleBlacklistLogHits
- Değer true ise, Special:Log/titleblacklist üzerinde kara listelerle eşleşen tüm yerel hesap oluşturma girişimlerini günlüğe kaydeder. Varsayılan değer
false
. Devre dışı olsa bile, günlüğüntitleblacklistlog
hakkı olan kullanıcı grupları için görünmeye devam edeceğini unutmayın. $wgTitleBlacklistCaching
- ?
$wgTitleBlacklistBlockAutoAccountCreation
- Ayrıca, kara listelerle eşleşen otomatik olarak oluşturulan hesabı da engeller. Varsayılan değer
true
.
- Çoklu engel listesi kaynakları
Başlık engeli listesi, yerel mesajın dışındaki birden fazla kaynaktan toplanabilir. Engel listesi kaynaklarını yapılandırmak için aşağıda açıklanan kodu kullanın:
wfLoadExtension( 'TitleBlacklist' );
$wgTitleBlacklistSources = [
[
'type' => 'localpage',
'src' => 'MediaWiki:Titleblacklist'
],
[
'type' => 'url',
'src' => 'https://meta.wikimedia.org/w/index.php?title=Title_blacklist&action=raw'
],
[
'type' => 'file',
'src' => '/home/wikipedia/blacklists/titles',
]
];
Daha fazla bilgi için görev T113864 sayfasına bakın.
Kullanım
Engel list
Başlık engelleme listesi MediaWiki:Titleblacklist sayfasında bulunur.
Bu sayfa, her biri ayrı bir satırda bulunan normal ifadelerden oluşur. Her biri, başlıkları kendisiyle eşleşen sayfaların oluşturulmasını yasaklar.
Her giriş ayrıca $1 içine eklenmiş ve $2 ile ayrılmış isteğe bağlı özellikler içerebilir.
The list of attributes must be enclosed in <>
and separated with |
.
The possible attributes are:
autoconfirmed
- allow autoconfirmed users to bypass the restrictioncasesensitive
- only apply the restriction when the letter case exactly matches the entrynoedit
- ayrıca sayfayı düzenlemeyi de yasaklayın (zaten varsa)moveonly
- only forbid page moves to matching titles, allowing ordinary page creationsnewaccountonly
- only forbid matching account creations, allowing other actionsreupload
- allow uploading new versions of matching files that already existerrmsg=X
- when an action is prevented, display the error message with the nameX
instead of the standard message
AntiSpoof uzantısı kuruluysa, antispoof
niteliğini de kullanabilirsiniz.
Örneğin:
Foo <autoconfirmed|noedit|errmsg=blacklisted-testpage> # Bu sayfa adına izin verilmiyor [Bb]ar # Kimse bu konuda madde oluşturmamalı .*pandora.* # Bu kelimeye bir sayfa adının hiçbir bölümünde izin verilmez
Burada düzenli ifadeler olarak adlandırılan, uygun düzenli ifadeler değil, sabit kodlu düzenli ifadeye eklenen alt kalıplardır. yani, yukarıdaki Foo alt deseni, /^Foo$/usi gibi düzenli bir ifade oluşturur.
Başlıklar metin biçimiyle eşleştiği için normal ifadelerde alt çizgiler ("_
") uzaya dönüştürülecektir ("Sayfa_başlığı" yerine "Sayfa başlığı").
Güvenli listesi
Ayrıca MediaWiki:Titlewhitelist sayfasında güvenli bir liste vardır.
Önce engelleme listesi, ardından güvenli liste uygulanır.
Böylece, güvenli listedeki bir girişle eşleşmesi dışında, engelleme listesindeki bir girişle eşleşen kullanıcı girişi engellenir.
Güvenli listeyi kullanmak için LocalSettings.php
dosyasında herhangi bir şey yapılandırmanız gerekmez.
Engelleme listesi için yukarıda listelenen isteğe bağlı özelliklerden bazıları, güvenli liste için de çalışır; harfe duyarlı.
Özelleştirme
- Uyarı mesajları
Engelleme listesinde listelenen bir başlık nedeniyle sayfa oluşturma denemesi engellendiğinde, kullanıcıya bir uyarı mesajı gösterilir. Bu sistem mesajları aracılığıyla özelleştirilebilir:
- MediaWiki:Titleblacklist-forbidden-edit — sayfa oluşturma ve düzenleme için,
- MediaWiki:Titleblacklist-forbidden-move — sayfa taşıma işlemleri için,
- MediaWiki:Titleblacklist-forbidden-upload — resim yüklemeleri için,
- MediaWiki:Titleblacklist-forbidden-new-account — yeni hesapları için.
Özel mesajlar errmsg
özelliği kullanılarak tanımlanabilir.
Örnek: Kullanıcı hesabı oluşturma işlemini kontrol etmek için TitleBlacklist'i kullanma
Kavramsal genel bakış
Yeni hesaplar için kullanıcı adı, bu uzantı tarafından yeni maddelere göre farklı değerlendirilecektir.
Bu uzantı, bir kullanıcının hesap oluşturma sayfasında Kullanıcı Adı
alanına girdiği dizenin başına "User:" (veya yerelleştirilmiş eşdeğeri) ekleyecektir.
Dolayısıyla bu uzantı, MediaWiki:Titleblacklist veya MediaWiki:Titlewhitelist üzerinde bulunan düzenli ifadelerinizle eşleşme gerçekleştirirken, "User:" + <kullanıcı-girişi> ile eşleşir.
Örneğin, "jill" yeni bir kullanıcı olarak engellemek istediğinizi düşünün. Bir engelleme listesi normal ifadesinin "jill.* <newaccountonly>" olduğunu ve bir kullanıcının hesap oluşturma sayfasında kullanıcı adı olarak "jill" girdiğini hayal edin. Bu uzantının yapacağı karşılaştırma "jill.*" (düzenli ifade) ve "User:jill" (oluşturulan girdi dizesi) arasında olacağından bu geçecektir. Bunlar eşleşmiyor ve bu nedenle "jill" izin veriliyor (ve muhtemelen bunu istemediniz). Amaçlanan bloğu etkilemek için MediaWiki:Titleblacklist üzerinde ".*jill.* <newaccountonly>" veya "User:jill.* <newaccountonly>" gibi bir normal ifade kullanın.
Normal ifadeyle eşleşen tüm kullanıcılar hariç tüm kullanıcıları engellemek istiyorsanız, MediaWiki:Titleblacklist içindeki tüm kullanıcıları engelleyin ve MediaWiki:Titlewhitelist içine izin verilen normal ifadeyi yazın.
Nasıl yapılır
Tüm kullanıcı adlarını, hesap oluşturma sırasında, boşluk ayrılmış, her ad büyük harfle yazılmış tam olarak iki addan oluşmaya zorlamak istiyorsanız, aşağıdakileri yapın:
1. TitleBlacklist kurun.
2. LocalSettings.php öğenize aşağıdakileri ekleyin
wfLoadExtension( 'TitleBlacklist' );
$wgGroupPermissions['sysop']['tboverride'] = false;
$wgTitleBlacklistSources = [
[
'type' => 'localpage',
'src' => 'MediaWiki:Titleblacklist'
]
];
3. https://www.example.com/mywiki/MediaWiki:Titleblacklist bağlantısında ekleyin
# Tüm kullanıcı hesaplarını engelleyin ve yalnızca MediaWiki:Titlewhitelistregex ile eşleşenlere izin verin
.* <newaccountonly>
4. https://www.example.com/mywiki/MediaWiki:Titlewhitelist bağlantısında ekleyin
# Her biri büyük harfle yazılmış, yalnızca bir boşlukla ayrılmış iki ada izin verin, ör. "Fred Mew" Tamam, "Fred mew" başarısız, "Fredmew" başarısız.
# Blok listesinde .* <newaccountonly> ile bağlıdır
User:[A-Z][a-z]+\s[A-Z][a-z]+ <casesensitive>
5. https://www.example.com/mywiki/MediaWiki:Titleblacklist-forbidden-new-account edit bağlantısında
"$2" kullanıcı adının oluşturulması engellendi. Şu engelleme listesi girişiyle eşleşir: <code>$1</code>. Lütfen kullanıcı adı için gerçek bir ad kullanın. Kullanıcı adları, bir boşlukla ayrılmış iki addan oluşmalıdır. Her isim büyük harfle yazılmalıdır. Ör.: * "Mary Smith". Tamam. * "MarySmith". Geçersiz. * "Mary smith". Geçersiz. * "marysmith". Geçersiz.
Kullanıcı adı oluşturma (ve madde oluşturma) engelleme kuralları MediaWiki:Titleblacklist ve MediaWiki:Titlewhitelist tarafından denetlenir. Bu mesaj MediaWiki:Titleblacklist-forbidden-new-account sayfasından özelleştirilebilir.
Eşleşmeleri test etme
action=titleblacklist API modülü, bir başlığı ve işlemi (ör. düzenle, oluştur, yeni hesap) engelleme listesine karşı test etmek için kullanılabilir.
'tboverride' hakkına sahip kullanıcılar tbnooverride
parametresini sağladığından emin olmalıdır.
Örneğin, engelleme listesi filtreyi içeriyorsa:
.*(.)\1{10}.* <newaccountonly|errmsg=titleblacklist-forbidden-new-account-invalid> # Kullanıcı adlarında tekrarlanan aynı karakterden on bir veya daha fazlasına izin vermez
bir API isteği gibi kullanabilirsiniz
Sonuç |
---|
{
"titleblacklist": {
"result": "blacklisted",
"reason": "<table class=\"plainlinks fmbox\nfmbox-system \" style=\"\" role=\"presentation\" dir=\"ltr\">\n<tr>\n<td class=\"mbox-image\">\n [[File:Imbox notice.png|40x40px|link=|alt=]]</td>\n<td class=\"mbox-text\" style=\"\"> The user name \"AAAAAAAAAAA\" [[Mediawiki talk:Titleblacklist|has been blocklisted]] from creation. </td>\n\n</tr>\n</table>",
"message": "titleblacklist-forbidden-new-account-invalid",
"line": ".*(.)\1{10}.* <newaccountonly|errmsg=titleblacklist-forbidden-new-account-invalid> # Disallows eleven or more of the same character repeated in usernames"
}
}
|
Scribunto yüklüyse, bu uzantı belirli başlıkların ve işlemlerin mw.ext.TitleBlacklist.test
işlevini kullanarak engel listesindeki bir girişle eşleşip eşleşmeyeceğini test etmeye izin verir.
Bir eşleşme bulunursa, eşleşen girişin ayrıntıları döndürülür.
Örneğin, engelleme listesi filtreyi içeriyorsa:
.*(.)\1{10}.* <newaccountonly|errmsg=titleblacklist-forbidden-new-account-invalid> # Kullanıcı adlarında tekrarlanan aynı karakterden on bir veya daha fazlasına izin vermez
işlevi çalıştırmak:
mw.ext.TitleBlacklist.test("new-account", "AAAAAAAAAAA")
eşleşen girişle ilgili ayrıntıları içeren aşağıdaki tabloyu döndürür:
{
custommessage = "titleblacklist-forbidden-new-account-invalid",
message = "titleblacklist-forbidden-new-account-invalid",
params = {
errmsg = "titleblacklist-forbidden-new-account-invalid",
newaccountonly = true
},
raw = " .*(.)\1{10}.* <newaccountonly|errmsg=titleblacklist-forbidden-new-account-invalid> # Kullanıcı adlarında tekrarlanan aynı karakterden on bir veya daha fazlasına izin vermez",
regex = ".*(.)\1{10}.*",
version = 3
}
Önbelleği temizleme
Engel listelerinin içeriği önbelleğe alınır. Bir URL'de veya sunucudaki bir dosyada yapılandırılan engelleme listelerindeki değişiklikler hemen uygulanmaz. Önbelleği temizlemeye zorlamak için MediaWiki:Titleblacklist sayfasını değiştirin ve kaydedin (hiçbir şeyi değiştirmeseniz bile). Engellenenler listesi olarak yapılandırılmış olup olmaması önemli değildir. includes/Hooks.php sayfasına bakın.
Normal ifadelerdeki kaynaklar
- Normal İfadelere Kısa Giriş
- 30 Dakikalık Normal İfade Eğitimi
- PHP: PCRE normal ifade sözdizimi, PHP tarafından kullanılan düzenli ifadelerin sözdizimi ve dolayısıyla bu uzantı
Ayrıca bakınız
Bu uzantı bir veya daha fazla Wikimedia projelerinde kullanılıyor. Bu, muhtemelen uzantının kararlı olduğu ve bu tür yüksek trafikli web siteleri tarafından kullanılacak kadar iyi çalıştığı anlamına gelir. Nerede kurulduğunu görmek için bu uzantının adını Wikimedia'nın CommonSettings.php ve InitialiseSettings.php yapılandırma dosyalarında arayın. Belirli bir vikide yüklü olan uzantılar listesinin tamamı vikinin Special:Version sayfasında görülebilir. |
This extension is included in the following wiki farms/hosts and/or packages: This is not an authoritative list. Some wiki farms/hosts and/or packages may contain this extension even if they are not listed here. Always check with your wiki farms/hosts or bundle to confirm. |