WordPress 3.1.2 přichází s opravenou bezpečnostní dírou

Druhá opravná verze v podobě WordPressu 3.1.2 se oficiálně objevila před dvěma dny a opravuje několik chyb a jeden bezpečnostní problém. Přehled chyb této verze také využijeme pro připomenutí jedné zajímavé (a možná i trochu pozapomenuté) funkce WordPressu.

Celkem byly ve WordPressu 3.1.2 opraveny 4 nahlášené problémy a změnilo se pouhých 8 souborů (prohlédnout si můžete přímo úpravy zdrojového kódu). Objevených chyb s každou další malou verzí postupně ubývá a vývojáří se už soutředí pouze na bezpečnostní problémy a zejména další velkou verzi. Začneme tedy s bezpečnostní dírou, která vlastně existenci WordPressu 3.1.2 způsobila.

Inkriminovaná bezpečnostní chyba se sice mohla projevit pouze u webů s více uživateli, ale případným záškodníkům dovolovala při použití nástroje „Kliknout a publikovat“ (Press this) publikovat příspěvek i bez příslušného oprávnění (v tomto případě publish_posts). Příspěvek s neprověřeným obsahem tak mohl být okamžitě publikován, protože nebylo správně kontrolováno uživatelské oprávnění a tudíž mohl kterýkoliv uživatel na úrovni “Spolupracovník“ tuto chybu zneužít (pokud by o ní samozřejmě věděl). Problém objevil jeden z vývojářů Andrew Nacin a jeho spolupracovník Benjamin Balter (v rámci GSoC 2011 bude mimochodem pracovat na zajímavém pluginu pro pokročilou správu dokumentů ve WordPressu). Ohledně bezpečnosti pak proběhla „pro jistotu“ ještě jedna drobná úprava, kde byl přesunuto escapování prostřednictvím filtru pro the_title z funkce _display_rows() do display_rows().

Připomeneme si také jednu zajímavou funkci WordPressu, kterou jen málokdo zná a používá (existuje mimochodem již od WordPressu 2.3), i když se občas může hodit, a to nejen pro testování. Můžete totiž v URL adrese jednoduše používat různé kombinace štítků a na příslušné stránce pak zobrazovat nejen příspěvky obsahující jeden zvolený štítek, ale rovnou všechny, které mají stejné štítky (průnik, intersection) nebo obsahují jeden či druhý štítek (sjednocení, union).

Příklad:

http://www.mujweb.cz/?tag=stitek1+stitek2 – zobrazí průnik (aneb všechny příspěvky obsahující oba dva štítky)

http://www.mujweb.cz/?tag=stitek1,stitek2 – zobrazí sjednocení (aneb všechny příspěvky obsahující jeden či druhý štítek)

Funkce má sice několik problémů, např. v nadpisu nad výpisem příspěvků se zobrazuje název pouze pro jeden (první) uvedený štítek, ale použitelná určitě je (funkční by měla být i s trvalými odkazy). Myslím, že funguje pouze pro štítky a už nikoli pro rubriky, vlastní taxonomie či dokonce různé kombinace (pokud nechcete použít drobný hack), což ale i víceméně vyplývá z logiky věci, kdy jsou URL parametry automaticky parsovány a předávány jako parametry pro aktuální dotaz do databáze (viz manuál parametrů pro štítky). Pro složitější případy je však také možné použít výborný plugin Taxonomy Drill-Down.

A nyní se už podrobněji podíváme na opravené chyby ve WordPressu 3.1.2:

  • Chyba 17054 - Byl odhalen problém s nefunkčními kombinacemi štítků v URL adrese (viz vysvětlení výše).
  • Chyba 17123 – Využití třídy WP_User_Query pro získání uživatelů z databáze s nastaveným řazením podle počtu příspěvků (post_count) nefungovalo u žádné jiné předpony (prefix) pro databázové tabulky kromě výchozí „wp_“.
  • Chyba 17218 – Odstraněno zbytečné escapování názvu při využití Rychlých úprav pro hierarchické vlastní typy obsahu (např. klasické stránky).
  • Chyba 17217 - Další podobný problém s escapováním u rozevíracího menu s výběrem stránek (třída Walker_PageDropdown).

Společně s WordPressem 3.1.2 vyšel (nečekaně a bez oznámení) také WordPress 3.0.6, který je určen pro uživatele, kteří nechtějí z nějakého důvodu aktualizovat na novější WordPress 3.1.x. Sice neznám důvod vydání této verze, ale docela by mě zajímalo, jak v tomto případě funguje automatická aktualizace (aneb zda se uživatelům WordPressu 3.0.5 nabízí nejnovější verze 3.1.2 či pouze 3.0.6). Pokud máte s touto situací nějaké zkušenosti, tak se určitě podělte.

Každopádně můžete bez obav aktualizovat. Začínající uživatelé si mohou stáhnout instalační balíček WordPressu 3.1.2 přímo z oficiálního webu, ostatní už mohou jen využít jednoduchou automatickou aktualizaci. Čeština pro WordPress 3.1.2 vyjde během zítřka (žádné změny v překladu však neproběhly, upraveno bude jen několik drobností).

3 komentáře u „WordPress 3.1.2 přichází s opravenou bezpečnostní dírou“

Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *

Můžete používat následující HTML značky a atributy: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>