Kritiky WordPressu: Pohled vývojáře

Kritiky WordPressu: Pohled vývojáře

Stále více vývojářů nakonec používá CMS, jako je WordPress, i když se jim tato platforma nelíbí.

Zkušení vývojáři často dávají přednost použití vlastních řešení, zvláště když jste vývojář, který je opravdu dobrý v programování. Pomocí vlastního řešení můžete vytvářet velmi elegantní aplikace, které velmi dobře fungují. Vývojáři však nakonec používají CMS, jako je WordPress, i když se jim tato platforma silně nelíbí.

Tento článek je zaměřen na tyto vývojáře a zabývá se mnoha problémy, se kterými se setkáváte při práci s WordPress (WP). Vysvětlíme, jaké jsou tyto potíže, a také navrhneme: pomoc Plesk, která poskytuje sadu nástrojů WP, která skutečně pomáhá zohlednit některé z hlavních kritických bodů nejoblíbenějšího CMS na světě: WordPress.

Proč vývojáři používají WordPress

Nenechte se mýlit, WordPress je z velmi dobrých důvodů nejoblíbenější CMS na trhu. V této části popíšeme, proč je CMS tak oblíbený i mezi zkušenými vývojáři, kteří skutečně dokážou napsat svůj vlastní kód.

Za prvé, WordPress se velmi snadno instaluje. Vše, co potřebujete, je standardní prostředí LAMP/LEMP – Linux, Apache/Nginx, PHP a MySQL/MariaDB jako DBMS. Pokud jej máte, můžete začít instalovat WordPress.

Přizpůsobení je stejně snadné, protože WP CMS přichází s velkým množstvím doplňků, včetně témat pro přizpůsobení vzhledu a vzhledu front-endu a pluginů, které přidávají funkce. Je také možné vytvořit si vlastní téma a zkušení vývojáři mohou také vytvořit své vlastní pluginy, ale tento proces je složitější.

Snad největším důvodem popularity WordPressu je samozřejmě fakt, že je přístupný i netechnickým uživatelům. Po instalaci WP nevyžaduje žádné zkušenosti s kódováním nebo porozumění softwaru, aby dobře fungoval, začínající uživatelé mohou publikovat web a nastavit instanci WordPress hned po práci.

V čem přesně je problém WordPressu?

Nejpopulárnější CMS na světě má spoustu problémů, které je třeba zvážit. Nemáme v úmyslu dělat povyk ohledně problémů s WordPress, ale následující je upřímná diskuse a doufáme, že vývojový tým za tímto neuvěřitelně populárním CMS bere následující body jako pozitivní kritiku. Zde je důvod, proč si myslíme, že WordPress je pro vývojáře frustrující:

Široce schopný, ale nikdy vynikající

Začátek WordPressu byl jednoduchý. WP se zrodilo jako platforma pro ty, kteří chtěli psát a publikovat blog. CMS se v průběhu let zcela změnil a nyní není podobný svým skromným začátkům. Někteří lidé jej používají jako základní systém pro správu celého webu, jako platformu pro online obchody a dokonce jako způsob generování statických webů (šílené, ale i to jsme za ta léta viděli)

Zdůrazňuje to, jak přizpůsobivý CMS je, a my s tímto tvrzením souhlasíme, ale problém s tak flexibilní je, že je obtížné vyniknout v jakékoli jednotlivé roli. Jedním ze způsobů, jak si to uvědomit, je podívat se přes čočku pluginů: tisíce dostupných pluginů WordPress ukazují, jak se lidé snaží donutit WordPress, aby byl něčím, co prostě není nebo ještě hůř, aby dělal něco, co není schopen dělat, nebo pokud ano, dělá to špatně. Z tohoto důvodu, když používáme WordPress a používáme ho často a rádi, nikdy do něj nezatěžujeme pluginy, které nejsou nezbytně nutné. V tu chvíli si je raději vyrobíme sami.

Je jasné, že WordPress je pro tento „self-made“ přístup vytvořen a flexibilita má samozřejmě mnoho výhod, o tom není pochyb. Ale bez silné koncentrace na konkrétní úkol má CMS velké problémy, aby nabídl jasné řešení. Toto zaměření na snahu být vším pro všechny způsobuje obrovské problémy. Musíme však upozornit: WordPress stále dobře funguje jako platforma pro vytváření blogů a nekomplexních webů a e-shopů.

Hacky a cracky: WordPress může být otevřenými dveřmi

Stručně řečeno, WordPress je neustále hackován a je to největší stížnost, kterou jsme ze světa vývojářů slyšeli. To se nedá popřít, CMS je plný bezpečnostních děr, nikdy nekončí. Je to jako krátká deka: na jedné straně ji upravíte a na druhé se odkryje. Částečně je počet hacků způsoben popularitou WordPressu, ale také tím, jak je WordPress open source.

Vzhledem k tomu, že kdokoli může zobrazit open source kód CMS, umožňuje to hackerům najít slabá místa v kódu. Nechceme říci, že open-source kód je špatný přístup, ale myslíme si, že open-source povaha WordPress CMS přispívá k jeho nekonečným bezpečnostním problémům.

Analýza ukazuje, že weby WordPress tvoří více než čtvrtinu internetu. Tým WordPress to ví a snaží se udělat vše pro to, aby byl CMS bezpečný, ale vzhledem k tomu, že vývojové cykly jsou dnes tak rychlé, může být obtížné plně zabezpečit komplexní aplikaci. A když selžou snahy o zabezpečení, mohou být ohroženy miliony webových stránek.

Nemáme zjevné řešení bezpečnostních problémů WordPress kromě, samozřejmě, zřejmého „aktualizujte svou instanci WordPressu“. I poté s sebou cyklus vydávání WordPress přináší jedinečné a nekonečné problémy.

Spousta lidí říká, že péče o zabezpečení WordPressu je jednoduchá, a to je do značné míry pravda, ale otázkou je, proč by majitelé stránek měli mít povinnost dělat seznam úkolů, aby se ujistili, že je WordPress bezpečný? Proč není tato bezpečnostní část WordPressu po vybalení?

  • Pro někoho je snadné nahrát spustitelný soubor na WordPress a tato možnost by měla být ve výchozím nastavení omezena. Stačí trochu chytrému člověku, který nahraje soubor se škodlivým kódem do PHP skriptu a vaše stránky jsou kompromitovány.
  • V současné době lze možnosti konfigurovat v systému souborů. Místo toho by to měl WordPress odstranit a předpokládat, že souborový systém je „pouze pro čtení“. Zatímco jádro WordPressu to dělá, pluginy tento vzorec chování nenásledují. Pokud narazíte na plugin, který změní svůj konfigurační soubor, zatímco je aktivně ve výrobě, přestaňte jej používat. Pokud tak učiníte, znamená to zapisovatelný souborový systém a v důsledku toho snadný způsob, jak provést škodlivé změny. Jedním z řešení je odstranit soubor wp-config.php z kořenového adresáře systému (WordPress funguje i tak), ale není to úplná záruka bezpečnosti a v žádném případě to brání správnému fungování mnoha pluginů, které napsali nevědomí vývojáři.
  • Ve výchozím nastavení WordPress umožňuje uživatelům provádět tolik pokusů o přihlášení, kolik chtějí. To otevírá dveře útoku hrubou silou, kdy hackeři zkoušejí náhodná hesla, dokud se přihlášení nepodaří. WordPress CMS by měl po instalaci zakázat neomezené pokusy o přihlášení.

Toto není vyčerpávající seznam, je to jen několik bodů. Je zřejmé, že velké softwarové řešení, zejména open-source řešení, nemůže být zcela nezranitelné vůči útoku. Jde nám ale o to, že seriózní vývojáři se zdráhají používat WordPress právě proto, že je tak zranitelný. Zkušení vývojáři by raději vytvořili zcela novou aplikaci, která elegantně splňuje jejich potřeby a může být přísně chráněna – bez obav z neznámých budoucích zranitelností.

Nebo tím, že co nejlépe využijete nastavení PLESK a nenačtete do WordPressu „nedoporučované“ nebo hůře „zdarma“ nebo v horším případě stále špatně napsané pluginy (potřebujete zkušenosti v oboru, abyste si o tom mohli udělat úsudek), můžete z WordPressu udělat výbornou platformu i z hlediska bezpečnosti. Už to ale není řízení „udělej si sám“, je potřeba ruka odborníka.

Pluginy jako zdroj problémů

Dobrý vývojář se neuchýlí k zásuvnému modulu, když se poprvé zasekne. Místo toho se dobří vývojáři snaží vytvořit jednoduché a elegantní řešení. Naopak spoléhat se vždy na pluginy při jejich hledání na internetu nebo spoléhat se na ty, které navrhuje Společenství, je velmi špatný způsob uvažování.

Zásuvný modul v konečném důsledku usnadňuje přidávání specifických funkcí do WordPressu, díky čemuž je široká škála zásuvných modulů dostupných pro WP silnou stránkou CMS – ale je to také riziko. Jak pluginy dokážou věci usnadnit a urychlit, pluginy s sebou nesou také mnohá bezpečnostní rizika a zároveň vás nutí vybrat si verzi WP, kterou můžete používat, a zároveň nafouknou vaši instanci WordPressu nad rámec jakéhokoli udržitelného opatření, ruší nebo podkopávají vaši online přítomnost, rychlost otevírání webu a tím i dosažitelnost a následně správné indexování ve vyhledávačích.

Pluginy a zabezpečení

Nejprve se podívejme na bezpečnostní problémy, které pluginy vytvářejí. Jedna zpráva naznačuje, že více než polovina známých bezpečnostních problémů WordPress pochází z pluginů. Vývojáři podléhají všem osvědčeným postupům, které výrobce pluginů dodržuje – což nemusí být tak dobré. Proto byste jako vývojáři měli plugin před použitím důkladně otestovat. Tento proces kontroly může do určité míry odstranit čas, který ušetříte pomocí pluginů, takže v tomto okamžiku můžete také zvážit vývoj od nuly potřebné funkce, kterou přidáte na web.

Omezení verzí WP

Pluginy, známé jako „omezení verze“, mohou omezit, kterou verzi WP CMS můžete spustit. Nyní je WordPress velmi agresivní svým cyklem vydávání, takže pravidelně vydává novou aktualizaci a ve skutečnosti se často stává, že platforma vydá několik malých verzí nebo záplat v daném měsíci. To je pochopitelné, protože tým WP neustále opravuje vektory útoků. Všechny tyto aktualizace však mají problém: aktualizace WP může poškodit plugin, což způsobí, že váš web přestane fungovat nebo se zhroutí.

Samozřejmě musíte udržovat svůj CMS aktuální, ale omezení verzí uložená pluginy mohou tuto práci ztížit. Někteří vývojáři pluginů neustále testují a aktualizují své pluginy, ale tento malý "svět" prémiové pluginy nepředstavuje většinu. Mimo tyto prémiové pluginy existuje reálné riziko, že upgrade verze WP může web doslova rozbít.

Plugin nadýmání

Předpokládejme, že většina vývojářů ví, že je důležité budovat štíhlé projekty, které nepoužívají přebytečný kód. Nyní některé pluginy tento princip splňují, ale mnoho pluginů je velmi nabubřelých, protože se tyto pluginy snaží vyřešit každý problém, který uživatel může mít. Je běžné, že vývojář zjistí, že plugin řeší jeden problém, zatímco nabízí řešení padesáti dalších problémů, které se jeho webu netýkají. (Nemluvě o tématech a "stavitelích").

Pluginy přeruší váš pracovní postup WordPress

A konečně, dalším běžným problémem, který mnoho pluginů vytváří, je skutečnost, že plugin může bránit uživatelskému zážitku ve WordPressu, to bohužel závisí na efektu bloat pluginy WordPress. Plugin může například zcela změnit způsob vytváření a šíření příspěvku na webu.

To má za následek problém, s nímž se vývojáři WP velmi běžně potýkají, protože mají pocit, že musí s pluginem příliš pracovat, než jen plugin používat. Vývojáři nevyhnutelně přebírají tento proces obcházení pluginů, protože se může zdát, že tento plugin řeší problém procesu (který tam nevyhnutelně není).

Webová architektura se vyvíjela

Již jsme zmínili, že WordPress existuje již nějakou dobu. Když byl vytvořen, vývojáři předpokládali, že web bude vždy používat jeden server vedle jediného souborového systému. Vývojáři však stále častěji používají to, čemu se říká architektura mikroserverů, která využívá více uzlů. Dělají to proto, že tento způsob práce je škálovatelnější a flexibilnější. Používání WordPressu na komplikované architektuře však může způsobit problémy, například téměř výhradní použití FTP pro aktualizace WP CMS.

Moderní vývojáři by si samozřejmě mysleli, že aktualizace kódu přes FTP je pouze archaická. Vývojáři obvykle používají specifický pracovní postup, takže potenciální problémy mohou být zastaveny dříve, než bude kód funkční. To znamená, že vývoj probíhá lokálně, kód je řízen verzí a tento kód je také testován automaticky – to vše prostřednictvím nepřetržitého integračního procesu. Stačí tedy načíst nový kód do prostředí, které spouští krátké smyčky, což znamená, že existuje vysoká pravděpodobnost, že se věci mohou pokazit.

Větší než problém záplatování je prostě předpoklad, že pracujeme s jediným souborovým systémem na jediném uzlu. Víceuzlový cluster webových serverů zlepšuje jak selhání hardwaru, tak výkon, a proto je tento přístup stále více přijímán. WP má však překážku v tom, že instalace aktualizace motivu nebo pluginu přes FTP znamená, že lze aktualizovat pouze jeden souborový systém najednou. Takže s víceuzlovým clusterem musíte tuto aktualizaci provést pro každý uzel.

Vývojáři mohou tento problém vyřešit, ale zůstává problémem, který nelze snadno vyřešit. Tento proces navíc vyžaduje, aby byl systém souborů zapisovatelný, což zase přináší hlavní bezpečnostní problém do databáze, která je tepajícím srdcem WordPressu.

Osiřelá data a datová struktura obecně

Zpočátku je datová struktura WordPress jednoduchá. Brzy se však ukáže, že v databázi WP jsou nadbytečné tabulky. Proč je například třeba metadata rozdělit do dvou tabulek: jedné s názvem „wp_posts“ a druhé „wp_postmeta“? Není lepší zahrnout všechna data do jedné tabulky? Totéž platí pro tabulku komentářů, která má druhou přidruženou tabulku pro svá metadata.

Výsledkem je, že v celé databázi zůstávají data navíc. Ano, WP obsahuje některé funkce, které pomáhají snížit účinek osiřelých dat, ale funkce selžou, když potřebujete manipulovat s počtem řádků s tisíci řádky. Funkce WordPress v zásadě způsobují časové limity serveru a vedou k únikům paměti a jednoduše nejsou účinné.

Samozřejmě se můžete rozhodnout jednoduše snížit osiřelá data přímým psaním dotazů SQL, abyste tak učinili. Musíte však důkladně porozumět tomu, jak jsou tabulky propojeny, abyste mohli psát správné SQL dotazy. Stupeň oddělení dat v databázi WordPress se jednoduše ukazuje jako nadbytečný.

Co dělá Plesk Toolkit pro WordPress, aby věci byly lepší

Plesk's WordPress Toolkit je snadný způsob, jak nastavit a přizpůsobit instanci WordPress, vše z jediného ovládacího panelu. Můžete jej používat, pokud je nainstalován na vašem webu. Zde je několik oblastí, kde nástroj WordPress Toolkit pomáhá postarat se o WP:

Řízení bezpečnosti

Pomocí sady nástrojů můžete automaticky uzavřít nejviditelnější bezpečnostní díry. Můžete například zpětně přepnout XML na RPC, ujistit se, že složka „wp-content“ je zabezpečená a mnoho dalšího. Sada nástrojů zobrazuje stav zabezpečení vašeho webu a označuje problémy jako „nebezpečí“ nebo „varování“, což je doporučení ke zlepšení zabezpečení.

Aktualizace instance WP

Funkce Smart Updates, která je k dispozici jako doplňková funkce v Toolkit 3.xa novějších verzích, vám umožňuje udržovat produkční web v chodu a zároveň jej aktualizovat, aniž by hrozilo poškození webu. Nástroj zkontroluje problémy, které mohou nastat v důsledku aktualizace, a řekne vám, zda existuje nějaké riziko.

Klonování

Existuje spousta důvodů, proč byste si mohli chtít vytvořit kopii svého webu WordPress. Můžete mít například zkušební web, kde můžete otestovat změny před spuštěním. Jakmile budete připraveni, chtěli byste zkopírovat obsah webu.

Nebo můžete mít veřejný web a možná budete chtít vytvořit jeho kopii, ke které nechcete, aby měla veřejnost přístup. Dalším příkladem jsou profesionální vývojáři, kteří mají vzorovou kopii instalace WordPress a chtějí ji pouze automaticky naklonovat, včetně motivů a pluginů.

Máme také klienty, kteří chtějí z různých důvodů udělat jen pár kopií webu, například ukázat, jak může web vypadat jinak s několika změnami.

Ať už je váš důvod jakýkoli, klonovací nástroj v sadě WordPress Toolkit usnadňuje kopírování všeho, včetně souborů webu, databáze webů a všech nastavení WP CMS.

Synchronizace

Z různých důvodů se možná budete chtít ujistit, že se dva weby WordPress shodují. WP Toolkit umožňuje automaticky synchronizovat jak databázi WP, tak všechny soubory WP.

Pokud máte pracovní kopii svého webu, zatímco vaše veřejná kopie běží jinde, možná budete chtít weby synchronizovat, protože chcete zkopírovat změny provedené na pracovním webu na web WP live.

Podobně možná budete chtít zkopírovat některá data z produkčního místa do vaší pracovní instance, abyste mohli zkontrolovat, zda změny provedené ve zkušební verzi hrají dobře s živými daty. Nebo změny, které jste provedli na svém pracovním místě, způsobily změnu ve vašich databázových tabulkách, v takovém případě vám sada nástrojů umožňuje synchronizovat tyto změny s vaší databází pouze v případě, že si to přejete.

Dalším případem použití funkce synchronizace nástroje WP Toolkit je situace, kdy vývojář aktualizoval pracovní web na maloobchodní verzi WordPress a chce zrcadlit změny na živém webu.

Máte možnost synchronizovat celý WP CMS, nebo jen některé jeho části. Můžete tedy zrcadlit soubory svého WP, jeho databázi nebo obojí. Nabízí se další granularita v tom, že si můžete vybrat mezi synchronizací celé databáze nebo pouze tabulek, nebo dokonce tabulek, které jsou ve zdroji, ale nejsou přítomny v cíli. Je také možné zrcadlit jednotlivé tabulky.

Lov na chyby ve WP

Plesk WordPress Toolkit také umožňuje vývojářům automaticky detekovat a opravovat chyby ve zdroji webových stránek povolením jeho režimu ladění.

Závěr.

Po všem výše uvedeném je jasné, že je nesmírně důležité vybrat si nejen vývojáře, se kterým budete spolupracovat, nebo agenturu, která vás může sledovat, ale především hosting, na kterém budete svůj web ve WordPressu hostovat. I z těchto věcí jsme pochopili, co to znamená mít temný web na profesionálním hostingu nebo ne.

WordPress není snadný „objekt“ na manipulaci. Jistě, cítíte se svobodní, myslíte si, že nepotřebujete vývojáře nebo nebýt vázáni na agenturu, myslíte si, že je úžasné to dělat sami, ale ve skutečnosti pravda říká něco jiného a bezpečnost dnes již není druhořadou, ale primární záležitostí i z titulu závazků a odpovědnosti vůči třetím stranám.