abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    včera 15:44 | Nová verze

    Byl vydán Mozilla Firefox 126.0. Přehled novinek v poznámkách k vydání, poznámkách k vydání pro firmy a na stránce věnované vývojářům. Vylepšena byla funkce "Zkopírovat odkaz bez sledovacích prvků". Přidána byla podpora zstd (Zstandard). Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 126 je již k dispozici také na Flathubu a Snapcraftu.

    Ladislav Hagara | Komentářů: 0
    včera 15:22 | Nová verze

    Grafana (Wikipedie), tj. open source nástroj pro vizualizaci různých metrik a s ní související dotazování, upozorňování a lepší porozumění, byla vydána ve verzi 11.0. Přehled novinek v aktualizované dokumentaci.

    Ladislav Hagara | Komentářů: 0
    včera 14:55 | Nová verze

    Byla vydána nová verze 24.0 linuxové distribuce Manjaro (Wikipedie). Její kódové jméno je Wynsdey. Ke stažení je v edicích GNOME, KDE PLASMA a XFCE.

    Ladislav Hagara | Komentářů: 2
    včera 13:00 | Nová verze

    Byla představena oficiální rozšiřující deska Raspberry Pi M.2 HAT+ pro připojování M.2 periferii jako jsou NVMe disky a AI akcelerátory k Raspberry Pi 5. Cena je 12 dolarů.

    Ladislav Hagara | Komentářů: 2
    včera 12:44 | Pozvánky

    V Praze o víkendu proběhla bastlířská událost roku - výstava Maker Fair v Praze. I strahovští bastlíři nelenili a bastly ostatních prozkoumali. Přijďte si proto i vy na Virtuální Bastlírnu popovídat, co Vás nejvíce zaujalo a jaké projekty jste si přinesli! Samozřejmě, nejen českou bastlířskou scénou je člověk živ - takže co se stalo ve světě a o čem mohou strahováci něco říct? Smutnou zprávou může být to, že provozovatel Sigfoxu jde do

    … více »
    bkralik | Komentářů: 0
    včera 12:33 | Humor

    Kam asi vede IllllIllIIl.llIlI.lI? Zkracovač URL llIlI.lI.

    Ladislav Hagara | Komentářů: 1
    13.5. 22:00 | IT novinky

    Společnost OpenAI představila svůj nejnovější AI model GPT-4o (o jako omni, tj. vše). Nově také "vidí" a "slyší". Videoukázky na 𝕏 nebo YouTube.

    Ladislav Hagara | Komentářů: 0
    13.5. 15:44 | Zajímavý článek

    Ondřej Filip publikoval reportáž z ceremonie podpisu kořenové zóny DNS. Zhlédnout lze také jeho nedávnou přednášku Jak se podepisuje kořenová zóna Internetu v rámci cyklu Fyzikální čtvrtky FEL ČVUT.

    Ladislav Hagara | Komentářů: 0
    13.5. 14:22 | IT novinky

    Společnost BenQ uvádí na trh novou řadu monitorů RD určenou pro programátory. První z nich je RD240Q.

    Ladislav Hagara | Komentářů: 20
    13.5. 13:00 | IT novinky

    Byl aktualizován seznam 500 nejvýkonnějších superpočítačů na světě TOP500. Nejvýkonnějším superpočítačem nadále zůstává Frontier od HPE (Cray) s výkonem 1,206 exaFLOPS. Druhá Aurora má oproti loňsku přibližně dvojnásobný počet jader a dvojnásobný výkon: 1,012 exaFLOPS. Novým počítačem v první desítce je na 6. místě Alps. Novým českým počítačem v TOP500 je na 112. místě C24 ve Škoda Auto v Mladé Boleslavi. Ostravská Karolina, GPU

    … více »
    Ladislav Hagara | Komentářů: 0
    Podle hypotézy Mrtvý Internet mj. tvoří většinu online interakcí boti.
     (73%)
     (6%)
     (11%)
     (11%)
    Celkem 253 hlasů
     Komentářů: 16, poslední včera 11:05
    Rozcestník

    Čuňačíme v Mediawiki – Pozor na staré šablony

    11.3.2021 19:55 | Přečteno: 2328× | Za vším hledej Linux | poslední úprava: 11.3.2021 19:55

    Minulý pátek, po 12 letech a 8 měsících jsem změnil doménu u nejstarší, mnou kontinuálně provozované wiki. A nebyla to změna jediná.

    Aktualizace MediaWiki

    Nejprve jsem zvednul verzi MediaWiki z 1.34, které skončil životní cyklus loni na konci listopadu, na aktuální verzi 1.35, s podporou až do září 2023. A s tím byl pochopitelně spojen také upgrade používaných rozšíření.

    Z toho jsem měl poněkud obavy, protože udržovat kód rozšíření tak, aby všechno fungovalo i s aktuální verzí MediaWiki není žádná sranda. Většina jejich tvůrců má svojí práce dost a řeší jiné problémy než zrovna to, jestli rozšíření, které si napsali pro MediaWiki verze 1.12 se dá používat i s verzí 1.35.

    Problémy, spojené s nějakým rozšířením, se po aktualizaci MediaWiki obvykle projeví tak, že server zobrazí nějakou chybu, nebo nic. A řeší se tak, že se nejdřív zakomentují všechna používaná rozšíření, a pak se znovu postupně zapínají, od těch nejdůležitějších po ta méně důležitá, dokud nepřijdete na to, které z nich způsobuje problém.

    Pokud se aktualizujete nějakou starší MediaWiki (viz životní cyklus verzí MediaWiki, tak doporučuji “vyskákat” nejprve na nejbližší LTS verzi a teprve pak aktualizovat dál až po aktuální LTS verzi. I tak si ale nejprve ověřte, jestli lze vámi používaná rozšíření použít. Tyhle informace najdete na vývojářském webu https://www.mediawiki.org, kde má každé rozšíření svou stránku.

    Změna domény a certifikát

    Důvodem pro změnu domény bylo postupné sjednocení domén používaných v rámci FEL ČVUT. Tato fakulta sídlí ve dvou lokalitách. V Dejvicích a na Karlově náměstí, a historicky se tak používaly dvě domény feld.cz a felk.cz.

    Web katedry řídicí techniky, kde jsem v květnu 2008 nastoupil, používal původně doménu dce.felk.cvut.cz proto jsem zvolil pro wiki, která měla za cíl zdokumentovat do té doby panující chaos, doménové jméno support.dce.felk.cvut.cz.

    Peripetie katederního webu jsem naštěstí řešil pouze okrajově. Nastoupil jsem, coby specialista přes virtualizaci v linuxovém prostředí, se základním cílem a předsevzetím – do windows už ani klacíkem. Ovšem v době, kdy už bylo defakto rozhodnuto o tom, že se nový web katedry rozjede na redakčím systému MediaCentrik, které však bylo MS Windows server only – do té doby běžel katederní web na BSD. Proto byl na jeho správu přijat kolega, specialista na MS Windows. Tento takzvaný “nový web katedry” používal doménu www.dce.felk.cvut.cz

    S tímto webem byl ale neustálý oser. Navíc, kolega až jinak fajn kluk to vůbec neuměl s linuxem, takže ho pár let nahradil budoucí šéf SVTI, kterému se podařilo cca po třech letech té MS Win only verze katederního webu konečně zbavit. “Nový nový katederní web” pak měl primární doménu www.dce.cz. Dnes již všechny tyhle domény vedou na https://control.fel.cvut.cz.

    U stroje support jsem s aktualizací a změnou domény (a IP adres) vyčkával až bude po obhajobách, protože se jeho prostřednictvím zveřejňují také bakalářské a diplomové práce studentů. Certifikát končil teď v březnu, takže jsme to spojili s přechodem na Lets' encrypt. Vše proběhlo minulý pátek a pochopitelně se to neobešlo bez problému.

    Chyba 501

    Google umožňuje změnu domény u naindexovaných URL, ale podmínkou k úspěšné realizaci této operace je funkční přesměrování. Než se do toho pustí, kontroluje, jestli se ze všech naindexovaných adres vrací permanent redirect (301). No a v tom byla potíž. Původní certifikát byl vyexpirovaný a nový byl vystaven pouze pro novou doménu, takže veškeré moje pokusy o přesměrování končily na SSL_ERROR_RX_RECORD_TOO_LONG

    Příčina i řešení tohoto problému byla jako obvykle lapidární. Především jsme se s kolegou nepochopili. Nedošlo mi, když mi sděloval že “Lets' encrypt je pro supporta povolený” že tím měl na mysli že je to povolené i pro původní doménu. Ovšem poté co jsme si to vyjasnili, pokus o vygenerování certifikátu pro obě domény stejně selhal. Ukázalo se, že chyběl ještě CAA záznam.

    Po vyřešení přesměrování začal Google konečně přesouvat naindexovaná URL, ovšem asi z 11 tisíc naindexovaných url adres jich asi 20 házelo error 501, což bylo divné. A skutečně, když jsem se pokusil některou z nich otevřít, skončil jsem s bílou plochou prohlížeče.

    Bylo jasné, že za tím vězí nejspíš moje rozšíření AccessControl. To jsem však kompletně přepsal už předloni a pro verzi 3.0.2, až doposud nikdo žádný problém neoznámil. A jak to, že zrovna tyhle stránky? Kdyby nebyly dostupné, tak by je přeci google nenaindexoval.

    Vrtalo mi to v hlavě, ovšem abych se na některou z těch stránek dostal a zjistil v čem je problém, bylo nutné ho rozšíření dočasně vypnout.

    Ukázalo se, že ty problémové stránky natahovaly šablonu Smazat. Poté co jsem zrušil její obsah, a rozšíření znova zapnul byly stránky normálně dostupné. Chyba tedy byla v šabloně. Jenže její obsah nebyl na první pohled ničím výjimečný.

    Používala se jen u stránek určených ke smazání, takže žádná tragédie. Ale přece jen. Proč skončil zacyklením také pokus o otevření stránky s šablonou? Byla to jedna z nejstarších šablon, zkopírovaná v září 2008 z Wikipedie. Tehdy se používala s MediaWiki verze 1.12, ale zrovna tahle šablona se používala jen krátce a to hlavně kolem roku 2014, kdy na údržbě wiki pracovala skupina studentů, takže v té době musela rozhodně fungovat. Souvisel ten problém s MediaWiki verze 1.35, nebo trval delší dobu? To už jsem zpětně ověřit nemohl.

    Příčina

    Ale byla tam ještě jedna problémová stránka – singlepage stránka s manuálem k DjVu. Zjistil jsem, že jedna z inkludovaných stránek používá komplexní šablonu, která na základě předaných parametrů natahuje dvě naprosto jednoduché šablony vytvořené v roce 2015. Ovšem ty už jsem si napsal sám. Se šablonou Smazat měly ale jedno společné – způsob, jakým byly dokumentovány.

    Od roku 2015 používám dokumentaci vkládanou přes šablonu Dokumentace. Ovšem u inkriminovaných šablon byla dokumentace napsaná přímo do šablony a uzavřená do elementu noinclude. A pochopitelně tam byl i ukázkový příklad použití šablony. A to bylo ono!

    Zjistil jsem, že MediaWiki má jednu nepříjemnou chybu, která je ve spojení s rozšířením AccessControl verze 3.x fatální. V roce 2019, během MediaWiki Hackatonu a asi 14 následujících dní jsem tohle rozšíření přepsal pro potřebu Semantic wiki tak, aby bylo možné používat access listy na bázi šablon. Vše jsem důkladně otestoval, takže mě nenapadlo že by mohl někde nastat problém. Jenže jak se ukázalo, problém nastane, pokud se pokud šablona inkluduje sebe sama.

    Nevím sice od kdy, ale od určité doby MediaWiki při náhledu varuje před zasmyčkováním šablony, ale netušil jsem, že takový kód dovolí uložit. Dodatečně, metodou pokus omyl, jsem pak zjistil že ani mému rozšíření to nevadí. Až na jedinou výjimku a tou jsou právě šablony. Tím, že MediaWiki kód nejprve uloží a teprve pak interpretuje, nastane situace kdy vznikne nekonečná smyčka a další editace, která by umožnila chybu opravit, již není možná. Pokud o načtení takové stránky končí s následující chybou:

    Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 8388616 bytes) in /srv/main/wiki/includes/libs/stats/BufferingStatsdDataFactory.php on line 89

    Nejprve jsem tedy kontaktoval Nicholase, na jehož přání jsem změny implementoval, abych ho na případný problém upozornil. A pak jsem začal pracovat na opravě. Bylo nezbytně nutné přidat hook, který by kód ověřil ještě před jeho uložením a v případě self-include jeho uložení zabránil.

    V té době už jsem měl tenhle blogpost prakticky napsaný, ale počkal jsem s jeho uveřejněním na to až bude nová verze 4.0 v git repozitáři MediaWiki. Přijde mi, že jde o natolik zásadní změnu, že si to zasloužilo navýšení verze, byť oprava nebyla z hlediska kódu nijak veliká. I z bezpečnostního hlediska to nebyl nějak zvlášť zásadní problém. Obsah nedostupných stránek nebyl nijak kompromitován. Ale to, že pro vyřešení problému je nutné zabezpečení dočasně vypnout mi přišlo jako hodně velký bezpečnostní problém.

    Už by k němu tedy nemělo dojít. Většina uživatelů na šablony stejně nehrabe. Problém by mohl nastat jedině v případě, že by chtěl někdo záměrně uškodit tím, že by takto zasmyčkoval nějakou hodně používanou šablonu. Ovšem soudný administrátor takové šablony zamyká. Ale hlavně si říkám, jak bych na ten problém vůbec přišel, kdyby mi ho neoznámil google, protože zasmyčkovanou šablonu vyhledávání ignoruje. Nevíte-li o ní, tak to vypadá jako kdyby neexistovala. Jenže ona existuje a jejím použití bezpečně zabetonuje stránku, do které byla vložena.

    Na téma MediaWiki zde ode mne v minulosti vyšlo…

    1. (11.3.2015)MediaWiki - rozšíření Translate - kromě rozšíření Translate zde padla zmínka také o rozšíření AccessControl.
    2. (12. 3.2015) Čuňačíme v MediaWiki - příklad využití rozšíření ExternalRedirect.
    3. (14. 3.2015) Čuňačíme v MediaWiki dál - popisuje, jak v prostředí MediaWiki modifikovat textové zprávy k rozšíření ConfirmAccount.
    4. (15. 3.2015) Od čuňáren ke korektnímu obsahu MediaWiki - popisuje jak u multijazyčné wiki využívat možnosti rozšíření ParserFunctions
    5. ( 1. 4.2015) Čuňačíme v MediaWiki - opět - popisuje jak využít možností rozšíření ParserFunctions MyVariables k modifikaci nabízeného obsahu wiki na základě autentifikace.
    6. ( 2. 4.2015) MediaWiki - dynamicky generované stánky - názorná ukázka využití rozšíření DynamicPageList (third-party) pro dynamicky generované stránky v MediaWiki. Kromě toho se zde objevila zmínka or rozšíření Loops a Variables, které umožňují v šablonách využívat smyčky a uživatelsky definované proměnné.
    7. ( 3. 4.2015) Čuňačíme v MediaWiki - proč? seznámení s tím, jak a proč jsem se dostal k MediaWiki
    8. (17. 8.2018) Čuňačíme v MediaWiki - responzivní obrázky blogpost o tom, jak donutit MediaWiki aby responzivně pracovala s obrázky. Součástí je šablona mé provenience, která využívá kromě již uvedených rozšíření navíc rozšíření ImageSizeInfoFunctions
    9. ( 3. 4.2019) Čuňačíme v Mediawiki – RecentChanges bez javascriptu
    10. (10. 4.2019) MediaWiki.org - překlad dokumentace
    11. (20. 5.2019) Wikimedia Hackaton 2019
    12. (12. 7.2020) Čuňačíme v MediaWiki - výřezy z obrázků
    13. ( 7. 1.2021) Čuňačíme v MediaWiki - responzivní obsah II., o pomocné šabloně I-size
    14. (10. 2.2021) Čuňačíme v MediaWiki - šablony jako nástroj., o pomocných šablonách ToDo, transstat, hop a block
    15. (26. 2.2021) Čuňačíme v MediaWiki - povídání z jiného světa, o šabloně BIO
           

    Hodnocení: 86 %

            špatnédobré        

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.