Bezpečnostní problémy s autorizačními rozšířeními
MediaWiki není navržena jako systém správy obsahu (CMS) nebo k ochraně citlivých dat. Naopak byl navržen tak, aby byl co nejotevřenější. Nepodporuje tedy ze své podstaty plně funkční, vzduchotěsnou ochranu soukromého obsahu. Ale s masivním nárůstem používání MediaWiki v podnikových intranetech a mnoha novými funkcemi podobnými CMS se objevují požadavky na přísnější zabezpečení.
Abychom pomohli autorům bezpečnostních rozšíření, tento seznam bezpečnostních chyb nalezených v této oblasti je udržován, aby mohli svá rozšíření otestovat proti každému z nich. Existuje několik rozšíření, která tvrdí, že poskytují selektivní přístup ke čtení/zápisu na stránky v Kategorie:Rozšíření uživatelských práv pro konkrétní stránku , a v současné době většina z nich vykazuje několik uvedených nedostatků.
Testování bezpečnostních rozšíření
Pokud se chystáte implementovat přístup pro čtení nebo zápis, zkontrolujte rozšíření, zda neobsahuje nedostatky uvedené v tabulce níže, a to tak, že se přihlásíte jako uživatel bez oprávnění ke čtení/zápisu. Spuštění nové relace procházení webu prostřednictvím režimu inkognito umožňuje navigaci na webu jako neprivilegovaný uživatel, když je software testován a konfigurován.
Tabulka běžných omezení bezpečnostních rozšíření
Funkce/Test | Zkontroluje | Poznámka |
---|---|---|
Inkluze/transkluze |
|
Částečně to řeší nastavení $wgNonincludableNamespaces zavedené v MW 1.10 (rev:19934). Můžete také použít manual:Hooks/BeforeParserFetchTemplateAndtitle , $2, ParserOptions::setTemplateCallback(), ParserOptions::setCurrentRevisionCallback(), ale pozor na ukládání do mezipaměti. |
Předběžné načtení |
|
Mělo by být bezpečné s rozšířením pomocí háčku UserCan , alespoň od 1.12 (možná i dříve). |
XML export (Special:Export) |
|
U rozšíření pomocí háčku userCan to bylo opraveno v MW 1,10 (rev:19935).
|
Atom/RSS kanály |
|
U rozšíření pomocí háčku userCan to bylo opraveno v MW 1,12 (rev:25944). userCan není uznán v MW 1.14 a rozhodně dříve (SpecialRecentChanges*.php byly přesunuty)! Stránky seznamů RecentChanges upraví komentáře.
|
Výpisy a vyhledávání |
|
Pro rozšíření používající háček userCan to bylo částečně řešeno v MW 1.10 (rev:21821): Stránka vyhledávání již nezobrazuje úryvky ze stránek, které nejsou čitelné - ale stále uvádí názvy článků, které nejsou pro uživatele dostupné. |
Odkazy na rozdíly a revize |
|
Pro rozšíření používající háček userCan by to mělo být v pořádku na nejnovějších verzích MediaWiki.
|
API |
|
V moderní MediaWiki by měl háček na userCan dostat prop=revisions , ale možná ne ostatní
|
Aktivní odkazy |
|
Pro rozšíření používající háček userCan by to mělo být v pořádku na nejnovějších verzích MediaWiki.
|
Související práva |
|
Pokud používáte userCan , mělo by to být v pořádku, ale možná budete muset napsat ArticleInsertComplete háček pro výtvory a TitleMoveComplete háček pro pohyby, které volají userCan ke 'kopírování' oprávnění.
|
Autorská zadní vrátka |
|
|
Ukládání do mezipaměti |
|
Omezení ukládání článků do mezipaměti na anonymní uživatele může poskytnout většinu výkonnostních výhod pro weby s převážně anonymními uživateli (jako je Wikipedie), aniž by došlo k ohrožení zabezpečení. |
Soubory a obrázky |
|
Vzhledem k tomu, že nahrané soubory jsou běžně obsluhovány přímo webovým serverem, nikoli prostřednictvím MediaWiki, není snadno možné, aby rozšíření bránila přístupu. Pokyny k nastavení omezení přístupu k obrázkům naleznete v části Manual:Image Authorisation . (img_auth.php používá userCan od r52751).
|
−Přesměrování |
|
|
Úprava sekce |
|
Pokud zabezpečení závisí na značkách vložených do kódu stránky, pak tyto značky nemusí být nutně přítomny v textu, který upravujete, i když jsou přítomny jinde na stránce. |
Sledování stránek |
|
Potřebuje háček WatchArticle , který zavolá userCan .
|
Další rozšíření |
|
Scribunto bude respektovat zpětná volání při načítání revizí ParserOptions::setCurrentRevisionCallback, ale ostatní rozšíření pravděpodobně ne |
Znečištění mezipaměti |
Existuje nějaká situace, kdy by se soukromá stránka mohla uložit do mezipaměti MediaWiki s oprávněním kontrolovaným v době mezipaměti? Později pak jiný uživatel získá hodnotu uloženou v mezipaměti, aniž by byla spuštěna kontrola oprávnění. | |
API:REST API |
|
Aktivuje se při aktivaci VisualEditor nebo některých dalších rozšíření. |
V systému ochrany proti čtení je pravděpodobně více "děr". Odepření přístupu pro čtení by tedy mělo být vnímáno jako něco jako "k vidění, pokračujte dál", spíše než jako záruka utajení.