Mýty o WordPressu

Nedávno začal vycházet nový elektronický časopis WP-admin (v češtině), který obsahuje několik článků o WordPressu (v podobě .pdf souboru). Zatím se sice objevilo pouze první číslo, které se věnuje hlavně chystanému WordCampu v Praze, ale obsahuje i jeden poměrně “kontroverzní” článek, na který si dovolím touto cestou reagovat.

Doporučuji nejdříve přečíst původní článek s názvem “Tři nedostatky, které WordPressu škodí”, kde se autor pokouší identifikovat hlavní problémy WordPressu, které jsou tak závažné, že se musí změnit, aby mohl WordPress v budoucnu vůbec přežít. Bohužel jde spíše o některé z často opakovaných mýtů, které se pravidelně objevují na různých místech a v různých podobách. Obvykle nemám moc času (ani chuť) na ně reagovat, ale příležitost vzniku nového časopisu (což je určitě dobrý počin a chci na něj v pozitivním smyslu upozornit) nelze nevyužít a zkusím shrnout argumenty, aby se mohl čtenář sám rozhodnout. Nejsem fanatický zastánce WordPressu (znám a uvědomuji si jeho chyby), ale považuji se za jeho praktického (a pokročilého) uživatele, který ho intenzivně využívá ke své práci.

1) Splašený vývoj

WordPress se vyvíjí sice poměrně rychle, ale vcelku dost předvídatelně (každý rok se většinou objeví 2 – 3 nové verze). A ne každá verze pro uživatele něco zásadního mění. WordPress 3.7 přišel např. s automaticky instalovanými aktualizacemi, takže si uživatelé na první pohled ani žádné větší změny nevšimli. Nejnovější WordPress 3.8 ale změnil vzhled celé administrace, což se už muselo dotknout všech uživatelů. Samotný příklad verze 3.7 byl také poněkud specifický, protože vývoj probíhal společně s verzí 3.8, která tak mohla vyjít téměř vzápětí.

Pokud se ale podíváme na vývoj vzhledu administrace, tak se naposledy výrazněji změnil ve verzi 2.7 (prosinec 2008) a poté už docházelo jen k drobnějším úpravám (zejména u verzí 3.3 a 3.5) a vlastně až po 5 (!) letech byla administrace ve WordPressu 3.8 zase trochu výrazněji přepracována, což se asi nedá nazývat překotným vývojem. Nehledě na to, že o chystané změně administrace jsme informovali skoro s ročním předstihem a její realizace byla důležitá z hlediska dalšího snadnějšího vývoje WordPressu. Nový vzhled je kontrastní, flexibilní (přizpůsobuje se různým velikostem použitých zařízení) a opravuje mnohé nešvary minulosti (přináší také např. základy Sass).

Samotný vývoj WordPressu samozřejmě souvisí i s rychlým rozvojem informačních technologií a obecně internetu, který se snaží následovat. Vývojáři ale mají jasně definovaný cyklus (opravy minulé verze, integrace novinek a delší dobu se pak ladí různé chyby). Každý uživatel může aktuální vývoj sledovat a většinou je už v předstihu několika měsíců jasné, co se bude asi dít v budoucnu (i když nás občas čeká i nějaké menší překvapení). Takže třikrát za rok byste měli (ale nemusíte) aktualizovat.

Kromě pravidelných velkých aktualizací jsou dostupné také malé opravné  a bezpečnostní verze, které už však běžného uživatele nemusí moc zajímat, protože se instalují automaticky bez jejich zásahu. Sice je chce občas někdo zakazovat, ale opravdu mi v tomto případě uniká důvod, protože tyto aktualizace nemění nic zásadního, uživatelé jsou o nich informováni emailem a jejich jediným důsledkem je to, že se nemusí obávat nějakého bezpečnostního problému. Budu rád, pokud mi někdo napíše jediný rozumný důvod, proč tyto aktualizace zakazovat. Tím samozřejmě nemyslím irelevantní odpovědi typu “upravil jsem zdrojové soubory”, “mám tam svůj plugin a nechci aby se mi rozbil”, atd. Zdrojové soubory neupravujeme a pluginy (a šablony) vytváříme tak, aby se nic rozbít nemohlo. Bohužel zde existuje určitý mýtus, že aktualizace může něco zničit či poškodit. Ještě jsem neviděl dobře udělaný web, kterému by aktualizace WordPressu opravdu nějak uškodila. Ano, pokud používáte podivné či zastaralé pluginy a šablony, tak tam nějaké riziko určitě hrozí, ale v tomto případě není řešením vyhýbat se “pokroku”, ale udělat si nejdříve pořádek na webu.

Pluginy a šablony jsou samozřejmě dalším bohatým tématem, které ale proletíme jen zběžně. Je důležité si však uvědomit jeden zásadní fakt. Pluginy jsou často poskytovány zdarma (placené pak mají nějakou podporu) a nikdo neručí za to, že nová verze pluginu nebude obsahovat nějakou chybu nebo že vůbec někdy vyjde. Nikdo nemá s autorem pluginu žádnou servisní smlouvu, aby musel odpovídat na požadavky uživatelů. Když to autora přestane bavit, tak může plugin navždy opustit (zejména pokud mu na další vývoj pluginu nikdo dobrovolně nepřispěje). Třeba ho to prostě jenom přestane bavit nebo vyhodí počítač a začne chovat kozy. Je to jeho právo a nikdo mu v tom nemůže nijak zabránit. Pokud je ale nějaký plugin vytvořen opravdu kvalitně (s využitím standardních funkcí WordPressu), tak i velké aktualizace přežije většinou bez problémů.

Mimochodem, WordPress 3.9 přinese novou verzi vizuálního editoru TinyMCE (aktualizace na verzi 4.x), takže lze čekat, že mnoho pluginů používajících např. vlastní ikonky, bude mít zase nějaké problémy. Zkoušel jsem dokonce uvedený příklad nefunkčního pluginu WP-Filebase, ale vkládání zkrácených zápisů (shortcode) mi na nejnovější verzi WordPressu bez problémů funguje, takže bych viděl problém spíše v nějakém konfliktu s jiným pluginem.

Netuším, jak by mohl v tomto případě pomoci navrhovaný fork? Samotné jádro zůstává stabilní, vývoj novinek probíhá nejdříve odděleně v podobě samostatných pluginů, kde probíhá detailní (i uživatelské) testování. Fork by se asi hodil v případě pokusu o celkové přepsání zdrojového kódu, ale to už je zase trochu něco jiného.

Abychom to ale nakonec nějak shrnuli. WordPress se nevyvíjí nijak rychle (a už vůbec ne splašeně), ale podle předem definovaného plánu a očekávaného scénáře. Časté aktualizace (zejména opravné  a bezpečnostní) jsou naopak jednou z důležitých výhod WordPressu. Nemusíte se obávat, že bude nalezena nějaká bezpečnostní chyba, programátor bude zrovna trávit dovolenou na Havaji a budete se měsíc bát, jestli se třeba nepřijdou na web podívat roboti, kteří by se pokoušeli dostat dovnitř. Každá větší verze pak přináší vždy nějaké vylepšení stávajících funkcí či něco zcela nového (většinou na základě toho, že to uživatelům chybělo nebo to chtěli zlepšit). Koncepce je tedy zcela jasná a rozhodně s tím nemám žádný problém.

2) Nízká kvalita kódu

Nejsem sice vzděláním programátor, ale už jsem toho viděl opravdu hodně a když se podívám na zdrojový kód WordPressu, tak je to místy pěkný “bordel”. Míchá se tam strukturované PHP s HTML (občas se přidá i CSS s Javascriptem), někdy se sice objeví i nějaké objektově orientované části kódu, ale žádné MVC, atd. Profesionální programátor se šklebí a dává ruce pryč. A hádejte, jaký redakční systém (CMS) je na světě nejpoužívanější? Myslíte, že milionům uživatelů vadí, že jimi používaný WordPress nerespektuje MVC? Ani náhodou. Potkal jsem mnoho uživatelů a klientů a nestěžoval si na to nikdo. Naopak jsou šťastní, že mohou za pár hodin zprovoznit slušně vypadající web (a zdarma), a to na hostingu za 10 Kč měsíčně. Ano, stěžují si mnozí programátoři a rozebírají špatný zdrojový kód ze všech možných hledisek. A hlavně jsou naštvaní, že jejich pracně budovaná MVC řešení (na základě nejnovějších trendů) jim leží na disku a klienti od nich chtějí raději WordPress. A proč? Protože ví, že když nebude programátor odpovídat, tak ho snadno nahradí (nebo si nainstalují sami plugin) a nemusí se “doprošovat” s každou sebemenší úpravou.

Pokud sledujete trochu podrobněji vývoj WordPressu, tak musí být zřejmé, že se vývojáři s každou novou verzí snaží zdrojový kód zlepšovat (vznikají např. nové přehledné třídy), ale ideální to ještě dlouho nebude. A víte proč? Představte si, že WordPress funguje i na PHP 5.2 a z prohlížečů podporuje (tedy spíše respektuje) Internet Explorer 7. A víte co se stane, když aktualizujete standardní web ve WordPressu z několik let staré verze 2.8 na nejnovější 3.8? Vůbec nic! Dvakrát kliknete a uvidíte hlášku, že proběhla aktualizace a musíte se znovu přihlásit (a možná deaktivovat nějaký nefunkční plugin a nahradit ho jiným). Zkuste si to samé udělat u Joomly a Drupalu :-) Poznámka: Tady vařím trochu z vody, protože s tím nemám moc zkušenosti a jde jen o dojmy z různých diskuzí (zastánci konkurenčních CMS mohou samozřejmě reagovat a uvést vše na pravou míru). Každopádně uživatelé to vědí a je jim zcela jedno, že WordPress není z dnešního programátorského hlediska moc povedený. Velmi důležitá je totiž hlavně zpětná kompatibilita a uživatelé se mohou dokonce snadno naučit dělat drobné úpravy.

Takže ano. WordPress nemá nijak úžasný a sexy zdrojový kód, můžeme klidně říci, že jeho kvalita je nízká. A koho to zajímá? Rozhodně to pro uživatele (!) není nic důležitého ani zásadního. A nikdo neříká, že profesionální programátoři nemohou své pluginy vytvářet hezky objektově.

3) Systémová zranitelnost

Opravdu si někdo myslí, že stále stejná adresa administrace (tedy wp-admin) je takový zásadní bezpečnostní problém? A vývojáři, kteří okamžitě vydávají bezpečnostní aktualizace pokaždé, když se někde něco šustne a může to ovlivnit 0,03 % existujících instalací, tak ten problém schválně několik let ignorují? Opravdu je řešením security through obscurity? K čemu to má být dobré? Budeme se místo wp-admin přihlašovat na adrese separatista-admin nebo wp-admin-d56ftrd7? Kdo si to bude pamatovat a proč?

Bojíte se útoku na web? Bojíte se, že někdo bude zkoušet tisíce různých hesel? Neměl by v tomto případě zasáhnout spíše hosting? Bojíte se, že někdo uhodne heslo “123admin”? Ano, uhodne ho. Použijte nějaké lepší heslo. A co dál? WordPress mimochodem zcela bez problémů funguje i se zabezpečeným  protokolem https a bezpečnost vývojáři určitě neberou na lehkou váhu (viz pravidelné automatické aktualizace).

Možná se budu trochu rouhat, ale z vlastní zkušenosti mohu říci (a to jsem viděl a spravoval stovky webů), že jsem nikdy neměl žádný bezpečnostní problém. Používám uživatelské jméno admin, dobré heslo a prověřené pluginy a šablony. Nepoužívám žádné speciální bezpečnostní pluginy. Nikdy se nikdo nepovolaný nedostal do administrace, tedy jenom jednou a to byla chyba hostingu, kdy se útočník dostal rovnou na server a pak je každá další ochrana marná. Občas se také objevil chvilkový výpadek během útoku, ale kvalitní hosting si s ním většinou rychle poradí. Používáte kradené šablony a zkoušíte každý den nějaký nový plugin přímo na webu? Dobře vám tak! Ale nepleťte do toho prosím bezpečnost a zranitelnost WordPressu.

Existují samozřejmě i další mýty o WordPressu, ale většinou jde pouze o neznalost nebo subjektivní názory založené na nějakém konkrétním problému. Celý text může vyvolat rozpory, ale diskuze je otevřená a uvítáme všechny zajímavé argumenty!

Nejoblíbenější hosting pro WordPress WEDOS.cz

10 thoughts on “Mýty o WordPressu”

  1. S kolegou vedu diskuze o wordpressu a dalších cms systémech. Já se na to dívám, jako běžný Pepa Vomáčka z Hornídolní, on jako programátor. On jako programátor o wordpressu nechce slyšet právě z toho pohledu kódu. Ale je to tak, jak je to tady popsáno. Mám-li si vybrat, který systém nasadit, skoro vždy volím WordPress. Proč? Jednoduché. Zkoušeli jste školit uživatele např. na Joomlu? Já jo. Nedá se to srovnat. To co na WordPressu vysvětlím během několika minut, na Joomle řeším hodinu i víc a pak následně maily a telefonáty, protože se v tom uživatel nevyzná. Proč tedy nasazovat Joomlu jen proto, že tento cms má o chlup lepší kód. To je blbost. Je sice fakt, že taková Joomla má lepší správu šablon, vytvářejí se neskutečně rychle, ale vždy se na to dívám z pohledu uživatele a jeho následné správy. Samozřejmě pokud si to projekt žádá, volím jiný CMS. Paskvily typu shopu na WordPress např. nehovím.

  2. Taky se k tomu trochu vyjadrim. Zacnu od konce…

    1. Zmena prihlasovaci adresy “wp-admin” nebo “wp-login.php” je dobre tak akurat pro boty. Utok od nekoho kdo se do administrace chce dostat tohle proste nezastavi. Co se tyce celeho systemu, tak wp je velice dobre zabezpecen. V tomhle naprosto souhlasim s Pavlem, kazdopadne nesouhlasim s tim ze jsi nikdy nemel zadny bezpecnostni problem ;)

    2. Sexy zdrojovy kod je k nicemu pokud system nema vic nez dobrou dokumentaci a v tomhle je wp da se rict dokonaly. K cemu mi je OOP nebo MVC u systemu kdyz musim dve hodiny zjistovat co jak funguje. I kdyz je WP zpraseny jak to jen jde, lze ihned zjistit jak ktera funkce funguje.

    3. Aktualizace je kapitola sama o sobe, malo kdo vi ze i v obycejnych aktualizacich jsou nekdy schovany i aktualizace opravujici ruzne hlavne vazne bezpecnostni chyby. O tom jsem se sam presvedcil kdyz jsem jednu takovou chybu hlasil sam. Ve vysledku byla oprava “schovana” pod drobnou a nenapadnou zmenou kodu pod kterou se podepsal Andrew. Jednoduse receno radsi budu aktualizovat kdykoliv to jde nez aby mi pak nejake decko zhodilo stupidnim DoS utokem cely virtual s dalsimi X weby.

    4. Co se tyce pluginu taktez souhlasim, sam jsem jich vytvoril uz mraky a jedine ceho jsem se kdy od uzivatelu dockal bylo ze nefunguje presne tak jak by oni chteli a ze je mam upravit tak aby zrovna oni byli spokojeni. Kdyz si jdete do obchodu pro chleba taky jej dostanete zadarmo? Pokud mate problem s nejakym zprasenym pluginem najmete si programatora za X stovek na hodinu a at vam jej jednoduse opravi. WordPress s timhle nema co delat.

  3. Zajímalo by mě, proč jsou v tomto článku všechna slova na konci řádků rozdělená špatně.

  4. I kdyz se povazuji za obhajovatele WP, tak autorovi bych doporucil jednu vec…pokud varim z vody a v nejake oblasti se nevyznam nebo nemam zkusenosti, tak se radeji nevyjadruju vubec. Napr. co se tyce bezpecnosti, tak mam bohuzel nejednu zkusenost, kdy byl web na WP napaden brute force utokem…je pravda, ze to weby nakonec ustaly, ale par noci jsem kvuli tomu nespal.

  5. Brute force útok na web je schopen řešit solidní hosting, s tím asi nemá WordPress úplně co dělat. Tady souhlasím s Pavlem, který to říká jasně: Ne vše je vina WP.
    A co dělat pro základní zabezpečení WP bylo řečeno nedávno třeba na WordCampu.

    BTW: Několikrát jsem naopak řešil napadení webu na Joomla! A je mi stále záhadou kde a jakým způsobem se tam útočník dostal, když vše je aktuální, prošel jsem soubory i databázi a ručně vyčistil co se mi zdálo podezřelé.
    Nejen z mých zkušeností vyplývá, že tento CMS bývá napadán častěji a brutálněji než WP… A teď nemůžu najít tu statistiku, tak příště :)

  6. Lukenzi: Na žádný závažný bezpečnostní problém si nevzpomínám nebo jsem o něm možná ani nevěděl :-)

    Pepawo: Někde jste psal, že to dělala minulá šablona Twenty Thirteen, ale nikdy jsem si toho ani tam nevšiml. Nemáte nějaký příklad nebo screenshot?

    Martin Burgner: Díky, souhlas! S Joomlou nemám žádné zkušenosti, ale nedávno jsem jeden problém s WordPressem zažil u Dreamhostu. Pravidelně se nějaký robot vždy naboural na web a přepsal nějaké soubory. Změnili jsme už úplně všechno, dali tam jen testovací čistou instalaci a stejně se tam někdo pokaždé dostal. Nakonec jsme tak dlouho “prudili” podporu až se přišlo na to, že mají nějakou díru na serveru. Provedli pár aktualizací a byl klid :-) Takže někdy za to může nejen WordPress a medializované útoky na něj, ale třeba i poskytovatel hostingu.

    rostanetek: Také už jsem zažil několik brute force útoků u různých hostingů, ale postupně se to zlepšuje. Administrátoři nasazují např. různé ochrany při přístupu ze zahraničních IP adres a další nástroje. WordPress už celosvětově používá cca 20 % webů, takže by snad neměl být problém ohlídat pár souborů před podobnými útoky. Tento typ útoků podle mě není nutné řešit na straně WordPressu. Respektive je možné to útočníkům ztížit (viz zmiňovaná změna adresáře wp-admin), ale tím to také ztížíte mnoha dalším uživatelům, kteří se s podobným problémem zatím nesetkali, protože používají kvalitní hosting. Každopádně když zaznamenáte nějaký brute force útok, tak doporučuji napsat na podporu hostingu a jít klidně spát, protože s tím stejně nic nenaděláte :-)

  7. WordPress mám rád, ale jako programátor musím říct, že vždy když v něm vidím smíchaninu PHP, HTML a někdy i JS tak to opravdu není příjemný pohled. MVC má svůj smysl. Ano souhlasím, že uživateli je to jedno, ale když má programátor po někom cizím upravovat kód, který vidí poprvé, tak mu MVC minimálně usnadní orientaci.

  8. fredomgc: Souhlas, také nemám rád míchanice. A proto bychom měli psát všichni alespoň hezké objektové pluginy. Bohužel jsem viděl poslední dobou takové věci, že proti nim i ten nejhorší soubor z jádra WordPressu obsahuje přenádherný kód :-)

  9. “WordPressu z několik let staré verze 2.8 na nejnovější 3.8? Vůbec nic! Dvakrát kliknete a uvidíte hlášku, že proběhla aktualizace a musíte se znovu přihlásit (a možná deaktivovat nějaký nefunkční plugin a nahradit ho jiným). Zkuste si to samé udělat u Joomly a Drupalu :-)”

    Opravdu to funguje. Udělal jsem to na jednom “zapomenutém webu a vše v pohodě.

Napsat komentář

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