Příručka:Zabránění přístupu

This page is a translated version of the page Manual:Preventing access and the translation is 100% complete.

Pro nápovědu ohledně uživatelských práv se podívejte na stránku Příručka:Uživatelská práva . Tato stránka obsahuje příklady užitečné při zabraňování přístupu.

Informace o tom, jak upravit LocalSettings.php, najdete na stránce Příručka:LocalSettings.php .

Jednoduchá soukromá wiki

Pro běžný případ použití "soukromé wiki, pro sebe a schválené ostatní" potřebujete:

  Varování: Viz varování v sekcích níže. Toto je jednoduchý kód pro "obecné použití" a může nebo nemusí odpovídat vašim požadavkům.
# Zakázat čtení anonymním uživatelům
$wgGroupPermissions['*']['read'] = false;

# Zakázat anonymní úpravy
$wgGroupPermissions['*']['edit'] = false;

# Zabránit registracím nových uživatelů s výjimkou sysops
$wgGroupPermissions['*']['createaccount'] = false;

V závislosti na tom, jaká rozšíření jste nainstalovali, možná budete chtít přidat na seznam povolených více stránek. Pokud například používáte rozšíření Rozšíření:ConfirmAccount , pravděpodobně budete chtít Special:RequestAccount přidat na bílou listinu. Pokud jazyk obsahu vaší wiki není angličtina, možná budete muset použít přeložený název příslušných speciálních stránek.

Omezení vytváření účtu

Chcete-li omezit vytváření účtu, musíte upravit LocalSettings.php v kořenové cestě vaší instalace MediaWiki.

# Zabránit registracím nových uživatelů s výjimkou sysops
$wgGroupPermissions['*']['createaccount'] = false;
Rozšíření ConfirmAccount můžete použít, pokud chcete nastavit frontu na potvrzení účtu. (Pokud ne, můžete stále postupovat následovně.)
Sysops bude stále moci vytvářet nové uživatele následujícím způsobem:
  1. Při přihlášení jako sysop přejde na Special:Userlogin.
  2. Kliknutím na odkaz "Vytvořit účet" se dostane na formulář pro vytvoření účtu.
  3. Zadejte uživatelské jméno a e-mailovou adresu a klikněte na tlačítko "e-mailem". Všimněte si, že potřebujete $wgEnableEmail=true , jinak si sysop musí vybrat heslo a poslat ho uživateli.
  4. Účet bude vytvořen s náhodným heslem, které je následně zasláno e-mailem na zadanou adresu (stejně jako u funkce "zapomenuté heslo"). Uživatel bude požádán o změnu hesla při prvním přihlášení; když to udělá, e-mailová adresa bude také označena jako potvrzená.
    Když místo toho kliknete na tlačítko "vytvořit účet", musí uživatel ručně odeslat heslo. Pokud jste nastavili $wgMinimalPasswordLength=0 (výchozí konfigurace až do verze 1.15) a pole pro heslo jste nechali prázdné, bude uživateli zaslán e-mail s žádostí o potvrzení e-mailové adresy, ale nebude mít přístup k Special:Confirmemail , aby mohl potvrzení provést. Místo toho se uživateli zobrazí chyba (pokud jste ji nepřidali do $wgWhitelistRead ); uživatel se bude moci přihlásit s prázdným heslem a poté potvrdit e-mail, ale jeho heslo nebude resetováno (bude muset být resetováno ručně).

Může být vhodné upravit text zobrazený při pokusu o přihlášení jiného uživatele. To lze provést na MediaWiki:Nosuchuser, když jste přihlášeni jako sysop. Používejte prostý text bez jakéhokoli speciálního formátování, protože formátování je ignorováno a text je vykreslen doslova. (Mohlo se změnit, viz bug 12952).

Můžete také upravit obsah e-mailu zaslaného novým uživatelům úpravou stránky MediaWiki:Createaccount-text.

Chcete-li zabránit i sysopům ve vytváření účtů:

# Zabránit komukoli v registraci nových uživatelů
$wgGroupPermissions['*']['createaccount'] = false;
$wgGroupPermissions['sysop']['createaccount'] = false;

Chcete-li přidat zprávu nad přihlašovací formulář, změňte MediaWiki:Loginprompt.

Omezení úprav

Omezení úprav všech stránek

Uživatelé budou i nadále moci číst stránky s těmito úpravami a mohou zobrazit zdroj pomocí Special:Export/název článku nebo jinými metodami. Více na stránce bug 1859.

Více na stránce Help:User rights a Příručka:$wgGroupPermissions . Pokud používáte Rozšíření:AbuseFilter , každý administrátor wiki může také zavést různá omezení.

Několik příkladů, jak chránit všechny stránky před úpravami (ne čtením) určitými skupinami uživatelů:

Omezení anonymních úprav

Vyžaduje, aby byl uživatel zaregistrován, než bude moci upravovat.

$wgGroupPermissions['*']['edit'] = false;

Omezení úprav na všechny uživatele, kteří nejsou sysop

Vyžaduje, aby byl uživatel členem skupiny uživatelů administrators (sysop).

$wgGroupPermissions['*']['edit'] = false;
$wgGroupPermissions['user']['edit'] = false;
$wgGroupPermissions['sysop']['edit'] = true;

Omezení úprav úplně na každého

$wgGroupPermissions['*']['edit'] = false;
$wgGroupPermissions['user']['edit'] = false;
$wgGroupPermissions['sysop']['edit'] = false;

Omezení úprav celého jmenného prostoru

Verze MediaWiki:
1.10

Počínaje MediaWiki verze 1.10 je možné chránit celé jmenné prostory pomocí proměnné $wgNamespaceProtection . Příklady:

# Povolit pouze automaticky potvrzeným uživatelům upravovat jmenný prostor projektu
$wgNamespaceProtection[NS_PROJECT] = array( 'autoconfirmed' );

# Nedovolte nikomu upravovat nediskusní stránky, dokud nepotvrdí své
# e-mailovou adresu (za předpokladu, že nemáme žádné vlastní jmenné prostory a umožňujeme úpravy
# od uživatelů bez potvrzení e-mailem)
# Poznámka pro 1.13: e-mailem potvrzené skupina a práva byly odstraněny z výchozího nastavení
# nastavení, pokud jej chcete používat, budete muset znovu povolit ručně
$wgNamespaceProtection[NS_MAIN]     = $wgNamespaceProtection[NS_USER]  =
$wgNamespaceProtection[NS_PROJECT]  = $wgNamespaceProtection[NS_IMAGE] =
$wgNamespaceProtection[NS_TEMPLATE] = $wgNamespaceProtection[NS_HELP]  =
$wgNamespaceProtection[NS_CATEGORY] = array( 'emailconfirmed' );

# Povolit pouze sysopům upravovat jmenný prostor "Policy" (zásady).
$wgGroupPermissions['sysop']['editpolicy'] = true;
$wgNamespaceProtection[NS_POLICY] = array( 'editpolicy' );

Všimněte si, že v posledním případě se předpokládá, že vlastní jmenný prostor existuje a že NS_POLICY je definovaná konstanta rovna číslu jmenného prostoru. Viz Příručka:Použití vlastních jmenných prostorů a Manuál:Konstanty jmenných prostorů pro seznam základních jmenných prostorů MediaWiki.

Omezení úprav určitých konkrétních stránek

Použijte funkci Protect . Ve výchozím nastavení může každý sysop chránit stránky, takže je mohou upravovat pouze ostatní sysopové. Ve verzi 1.9 a vyšší mohou ve výchozím nastavení také chránit stránky, takže je mohou upravovat pouze "automaticky potvrzení" uživatelé (s účty staršími než nastavené období). To nevyžaduje úpravu konfiguračních souborů.

Pokud chcete omezit úpravy na skupiny se specifickými oprávněními, upravte $wgRestrictionLevels . Chcete-li zabránit jiným akcím než úpravám a přesunutí, použijte $wgRestrictionTypes .

Omezení úprav všech stránek kromě několika

Chcete-li zavést plošné omezení úprav pro všechny stránky, ale umožnit, aby některé z nich (například karantény, stránky s žádostí o připojení atd.) bylo štědřeji upravitelné, můžete použít rozšíření EditSubpages . To se nemusí příliš často hodit, ale můžete také použít výše zmíněnou metodu Omezení úprav určitých konkrétních stránek, se všemi chráněnými jmennými prostory a pouze se speciálním, který může upravovat každý, který má všechny požadované stránky. upravitelné.

Omezení úprav pro určité rozsahy IP adres

Školy a další instituce mohou chtít zablokovat všechny úpravy, které nejsou z několika specifikovaných rozsahů IP adres. Chcete-li tak učinit, podívejte se na stránku Příručka:Blokování a odblokování . Jediný způsob, jak to v současnosti udělat bez úpravy kódu, je přejít na Special:Blockip a přepnout rangeblock každý z rozsahů adres, který nechcete aby mohl upravovat. To bude fungovat pro všechny budoucí verze MediaWiki. Nebude fungovat na základě jmenného prostoru.

Omezení úprav konkrétním uživatelem

Použijte funkci uživatelského blokování , abyste uživateli odebrali veškerý přístup k úpravám. MediaWiki nezahrnuje možnost přímo udělovat práva samostatným uživatelům. Místo toho jsou práva vždy přidělena skupině uživatelů. V základním softwaru neexistuje žádný způsob, jak změnit oprávnění konkrétních uživatelů za účelem omezení nebo povolení úprav konkrétních stránek, s výjimkou změny jejich uživatelské skupiny.

Omezení vytváření všech stránek

Odvolání práva editovat již brání dotčeným uživatelům vytvářet nové stránky a diskusní stránky.
# Anonymní uživatelé nemohou vytvářet stránky
$wgGroupPermissions['*']['createpage'] = false;

# Stránky mohou vytvářet pouze uživatelé s účty starými čtyři dny a více
# Vyžaduje MW 1.6 nebo vyšší.
$wgGroupPermissions['*'            ]['createpage'] = false;
$wgGroupPermissions['user'         ]['createpage'] = false;
$wgGroupPermissions['autoconfirmed']['createpage'] = true;

Omezení vytváření stránek v určitých jmenných prostorech

Existují samostatná práva pro vytváření diskusních stránek (createtalk) a vytváření nediskusních stránek (createpage). Pokud potřebujete jemnější ovládání podle jmenného prostoru, není to v základní MediaWiki možné a vyžaduje rozšíření, jako je Extension:Lockdown .

Omezení přístupu k nahraným souborům

Příručka:Autorizace obrázků , img_auth.php , Příručka:Uživatelská práva (přečíst)

Pokud jste povolili možnost nahrávat soubory, budou tyto obsluhovány přímo základním webovým serverem. Výsledkem je, že přístup k souboru na základě účtu je ve výchozím nastavení neomezený.

  Varování: Nastavení uživatelského práva "čtení" (povolení prohlížení stránek) na false ochrání pouze wiki (článek, rozhovor, . ..) stránky, ale nahrané soubory (obrázky, soubory, dokumenty... v podadresářích $wgUploadPath ) zůstanou ve výchozím nastavení vždy čitelné prostřednictvím přímého přístupu .
Použijte informace ze stránek Příručka:Autorizace obrázků a img_auth.php , když potřebujete omezit zobrazení obrázků a přístup ke stahování souborů pouze přihlášeným uživatelům.

Příklad omezení přístupu k nahraným souborům v konfiguraci serveru

Pokud jsou citlivé soubory nahrány na internetovou wiki, možná budete chtít přidat omezení, odkud k nim lze přistupovat. Na Apache, pokud byla vaše místní síť 10.1.2.*, můžete omezit poskytování souborů na místní adresy pomocí:

  <Location /mediawiki/images>
    Order deny,allow
    Allow from 10.1.2.3
    Deny from all
  </Location>

Omezení sledování

Omezení zobrazení všech stránek

  Varování: Pokud chcete, aby anonymní uživatelé nemohli zobrazit označení/kód wiki, neměli byste jim dovolit upravovat žádnou stránku (viz #Omezení úprav všech stránek výše). Pokud mohou upravovat libovolnou stránku, mohou použít zahrnutí šablony k zobrazení i stránek, které upravovat nemohou. Tomu lze předejít použitím $wgNonincludableNamespaces
  Varování: Tato metoda umožňuje každému návštěvníkovi zobrazit wiki po vytvoření účtu. Můžete jej zkombinovat s výše uvedeným #Omezení vytváření účtu.
  Varování: Nahrané obrázky budou i nadále viditelné pro každého, kdo zná název adresáře obrázků. Buď nasměrujte $wgUploadPath na skript img_auth.php a postupujte podle pokynů v Příručka:Autorizace obrázků , nebo použijte nějakou externí metodu k ochraně obrázků, jako je .htaccess.
  Varování: Wiki stránky jako MediaWiki:Common.css a MediaWiki:Gadget-foo.css mohou být součástí veřejného modulu ResourceLoader, a proto může být jejich zdrojový kód vystaven až load.php. Chcete-li tuto funkci deaktivovat, vypněte $wgUseSiteJs a $wgUseSiteCss .
Pokud vaši stránku nemohou zobrazit anonymní uživatelé, nemohou je zobrazit ani vyhledávače. Vaše stránky nebudou indexovány na Googlu.

Přidejte tento řádek do svého souboru LocalSettings.php:

# Zakázat čtení anonymním uživatelům
$wgGroupPermissions['*']['read'] = false;

# Ale umožněte jim číst např. tyto stránky:
$wgWhitelistRead = [ "Main Page", "Help:Contents" ];

Nastavení $wgWhitelistRead umožňuje uživatelům zobrazit hlavní stránku. Pokud mají názvy stránek více než jedno slovo, použijte mezi nimi mezeru " ", nikoli podtržítko "_".

Kromě hlavní stránky takového soukromého webu můžete čtenářům informačních kanálů poskytnout přístup ke stránce Poslední změny (pokud si myslíte, že její obsah není soukromý) přidáním Special:Recentchanges k $wgWhitelistRead .

Pokud z jakéhokoli důvodu potřebujete chránit i postranní panel, hlavní stránku nebo přihlašovací obrazovku, doporučujeme použít ověřování vyšší úrovně, například .htpasswd nebo ekvivalent.

  Varování: MediaWiki od 1.32 do 1.35.4, 1.36.2, 1.37.0 obsahují bezpečnostní problém, který umožňuje neoprávněné úpravy libovolné stránky a libovolné spouštění JavaScriptu. Pokud používáte jednu z těchto verzí a nemůžete aktualizovat na novější verzi, podívejte se na stránku 2021-12 security release/FAQ pro řešení.
Ačkoli Special:Listusers nebude k dispozici, lze určit, zda je uživatelské jméno správné z chyb Userlogin. Možná budete chtít zadat společný text pro MediaWiki:wrongpassword a MediaWiki:nosuchusershort.

Omezení zobrazení určitých konkrétních stránek

Chcete-li zabránit komukoli kromě sysopů v zobrazení stránky, můžete ji jednoduše smazat . Aby se zabránilo i sysopům v jeho prohlížení, lze jej odstranit trvaleji pomocí Příručka:Smazání změn . Chcete-li zcela zničit text stránky, lze jej ručně odstranit z databáze. V žádném případě nelze stránku v tomto stavu upravovat a pro většinu účelů již neexistuje.

To, aby se stránka pro některé uživatele chovala normálně, ale pro ostatní byla neviditelná, jak je to možné například u většiny softwaru na fóru, je velmi odlišná věc. MediaWiki je navržena pro dva základní režimy přístupu:

  1. Každý si může prohlédnout každou jednotlivou stránku na wiki (možná s výjimkou několika speciálních stránek). Tento režim používá Wikipedie a její sesterské projekty.
  2. Anonymní uživatelé mohou zobrazit pouze hlavní stránku a přihlašovací stránku a nemohou upravovat žádnou stránku. To je v zásadě stejné jako výše uvedené, pokud jde o technickou implementaci (jen další kontrola pro každé zobrazení stránky), a proto existuje. Toto je způsob provozu používaný některými soukromými wikinami, jako jsou ty, které používají různé komise Wikimedie.

Pokud máte v úmyslu mít jiná oprávnění k prohlížení, MediaWiki není navržena pro vaše použití. (Podívejte se na stránku T3924.) Data nemusí být nutně jasně vymezena jmenným prostorem, názvem stránky nebo jinými kritérii a existuje mnoho úniků, které budete muset zapojit, pokud to chcete udělat (viz ukázka Bezpečnostní problémy s autorizačními rozšířeními ). Pro váš účel může být vhodnější jiný wiki software. Byl jsi varován. Pokud musíte používat MediaWiki, existují tři základní možnosti:

  1. Nastavte svou wiki jako soukromou a přidejte na seznam povolených konkrétní stránky, které budou veřejné s $wgWhitelistRead v souboru LocalSetting.php. Viz část výše.
  2. Nastavte samostatné wikiny se sdílenou databází uživatelů , nakonfigurujte jednu jako zobrazitelnou a jednu jako nezobrazitelnou (viz výše) a mezi nimi vytvářejte odkazy na interwiki .
  3. Nainstalujte hack nebo rozšíření třetí strany. Budete jej muset znovu použít při každé aktualizaci softwaru a nemusí být aktualizován okamžitě, pokud budou vydány nové opravy zabezpečení nebo aktualizace MediaWiki. Hacky třetích stran samozřejmě vývojáři MediaWiki nepodporují, a pokud máte problémy, neměli byste se ptát na MediaWiki-l, #mediawiki nebo jiných oficiálních kanálech podpory. Řada hacků je uvedena v Kategorie:Rozšíření uživatelských práv pro konkrétní stránku . Přečtěte si o Bezpečnostní problémy s autorizačními rozšířeními , pokud plánujete použít jeden z nich.

Omezení exportu

Související stránka: Příručka:Parametry pro Special:Export

Není možné exportovat obsah stránky, kterou nelze přečíst od r19935.

Odstranění přihlašovacího odkazu ze všech stránek

Odkaz na přihlášení/vytvoření účtu lze odstranit z pravého horního rohu všech stránek, protože uživatelé se stále mohou přihlásit na Special:SpecialPages > Special:UserLogin. V použití LocalSettings.php (testováno s MediaWiki 1.16)

function NoLoginLinkOnMainPage( &$personal_urls ){
    unset( $personal_urls['login'] );
    unset( $personal_urls['anonlogin'] );
    return true;
}
$wgHooks['PersonalUrls'][]='NoLoginLinkOnMainPage';

Odstranění účtů

Pokud chcete uživateli zcela odebrat přístup, např. na jednoduché soukromé wiki není možné jednoduše smazat účet (pokud nebyly provedeny žádné úpravy ). Můžete jej zablokovat , ale uživatel bude stále schopen číst stránky. Pomocí rozšíření User Merge and Delete však můžete účet sloučit do jiného a ten první smazat. Původní účet pak "zmizí". Pokud chcete zachovat čitelnost historie (tj. aby se úpravy od uživatele stále zobrazovaly pod jeho jménem), můžete si vytvořit nový účet, např. s uživatelským jménem "OriginalUserName (deaktivováno)" a poté sloučit "OriginalUserName" do prvního, nebo dokonce použít rozšíření Renameuser k přejmenování "OriginalUserName" na "AnotherUserName", poté vytvořit účet pod "OriginalUserName" a sloučit do něj "AnotherUserName": Tímto způsobem bude "OriginalUserName" zcela "zmocněn" (pokud jste nastavili nenulové heslo).

Od MediaWiki 1.16.0 je možné nastavit $wgBlockDisablesLogin na true, aby se zabránilo přístupu a čtení blokovaným uživatelům.

Další omezení

Možná budete chtít, aby stránky upravoval pouze jejich tvůrce, nebo zakázat prohlížení historie nebo cokoli z řady dalších věcí. Žádná z těchto funkcí není dostupná v nehacknuté verzi MediaWiki. Pokud potřebujete podrobnější oprávnění, podívejte se do sekce #Viz také, kde najdete odkazy na další wiki balíčky, které jsou k tomu určeny, a také hacky, které se pokoušejí překroutit MediaWiki do něčeho, co není navrženo, ale může fungovat i tak.

Související odkazy

Existuje několik souvisejících stránek s příručkou/nápovědou, které by vás mohly zajímat:

Jiný software wiki může mít lepší podporu pro jemné řízení přístupu než MediaWiki:

  • MoinMoin
  • TWiki
  • TikiWiki - má plně konfigurovatelné řízení přístupu k funkcím a úrovním oprávnění.

Pokud chcete lepší řízení přístupu, ale chcete používat MediaWiki, toto je seznam rozšíření a hacků, které umožňují omezení, která nejsou ve vlastním softwaru možná. Tyto hacky mohou být zastaralé (zkontrolujte verzi, pro kterou jsou). Prosím, neptejte se na oficiálních kanálech podpory MediaWiki, jestli se něco pokazí s hackem třetí strany.