Bezpečnosť štruktúry priečinkov WordPress spočíva v zablokovaní prístupu do priečinka "wp-includes" tak, aby sme neblokovali celý priečinok slepo, ale zabránili spúšťaniu PHP súborov z vonkajších zdrojov a zakázali zoznamovanie adresárov. Priečinok wp-includes totiž obsahuje potrebné JavaScript, CSS a niektoré statické súbory pre fungovanie jadra WordPress; úplné zablokovanie priečinka by mohlo narušiť dizajn stránky, editor alebo funkcie pluginov. Správny prístup je zablokovať prístup k PHP súborom prostredníctvom pravidiel .htaccess, ak používate Apache, alebo pomocou pravidiel location v serverovom bloku, ak používate Nginx, a následne overiť funkčnosť stránky testami 403/404 a kritickými stránkami.
Jednou z najčastejších chýb v oblasti bezpečnosti WordPress je obmedzenie sa len na silné heslo alebo bezpečnostný plugin. Útočníci často prehľadávajú adresáre s jadrovými súbormi, zastarané pluginy, nesprávne nastavenia súborov a otvorené zoznamy adresárov. Priečinok wp-includes je jedným z cieľov týchto prehľadávaní. V tomto sprievodcovi nájdete realizovateľné kroky na obmedzenie prístupu do wp-includes v reálnych hostingových prostrediach, aké pravidlá môžu narušiť stránku, príklady konfigurácie pre Apache a Nginx, testovacie metódy a kontrolný zoznam údržby. Pre bezpečnejšie fungovanie vašich WordPress stránok môžete zvážiť možnosti WordPress hosting a certifikát SSL ako všeobecnú ochrannú vrstvu.
Čo je priečinok wp-includes a prečo by mal byť chránený?
Priečinok wp-includes je jedným z hlavných adresárov, ktoré obsahujú základné knižnice jadra WordPress. V tejto štruktúre sa nachádzajú komponenty systémov tém, blokového editora, REST API, spracovania médií, triedy, funkcie a rôzne JavaScript súbory. Jednoducho povedané, wp-includes je jedným z motorových priestorov WordPressu; nie je to oblasť obsahu, ktorú by mali používatelia priamo navštevovať.
Normálny návštevník nemusí otvárať adresu site.com/wp-includes/. Avšak v zdrojovom kóde stránky môžu byť viditeľné niektoré statické elementy z wp-includes. Napríklad predvolené skriptové súbory WordPressu, emoji skripty alebo komponenty editora môžu byť načítané z tohto adresára. Preto je pri zabezpečení potrebné presne určiť cieľ: zablokovať prístup k PHP súborom bez toho, aby sme zabránili spúšťaniu statických súborov.
Toto rozlíšenie je základom profesionálneho prístupu k bezpečnosti štruktúry priečinkov WordPress. Náhodné zablokovanie priečinkov sa môže na krátku dobu zdať bezpečné, ale môže spôsobiť problémy ako biela stránka na živých stránkach, poškodený administračný panel, nefunkčný blokový editor alebo chybné zobrazenie témy. Cieľom je zúžiť plochu útoku ochrannou vrstvou súborov potrebných pre fungovanie WordPressu.
Čo získa zablokovanie prístupu do wp-includes?
Zabránenie priamemu spúšťaniu PHP v priečinku wp-includes samo o sebe nezastaví všetky útoky; avšak významne znižuje plochu útoku. Najmä na infikovaných stránkach sa útočníci snažia nahrávať škodlivé PHP súbory do prístupných adresárov alebo vyžadovať existujúce súbory. Zákaz priameho spúšťania PHP súborov pod wp-includes vytvára ďalšiu bariéru v tomto scenári.
Tento krok prináša nasledujúce výhody:
- Obmedzuje priamy prístup k jadrovým PHP súborom prostredníctvom URL.
- Pomáha zabrániť zobrazeniu obsahu priečinka, ak je povolené zoznamovanie adresárov.
- Znižuje zbytočné úniky informácií voči automatizovaným botovým skenovaniam.
- Poskytuje ochranu na úrovni webového servera, aj keď nie je nainštalovaný žiadny bezpečnostný plugin.
- Posilňuje viacúrovňovú bezpečnosť v kombinácii s WAF, SSL, aktuálnym PHP a povoleniami súborov.
Dôležité je, že tento proces je bezpečnostnou vrstvou. Ak existujú zastarané pluginy, slabé heslá administrátora alebo napadnuté FTP účty, pravidlo pre wp-includes nemusí byť dostatočné. Bezpečnosť je kombináciou hostingovej infraštruktúry, aplikácie, správy používateľov a pravidelnej údržby. Pre bezpečný základ môžeme odkázať na Bezpečný web hosting a Bezpečnosť domény pre dodatočnú ochranu pri správe domén.
Najčastejšie chyby pri zablokovaní wp-includes
Blokovanie celého priečinka
Najčastejšou chybou je zablokovanie všetkých HTTP požiadaviek smerujúcich do priečinka wp-includes s kódom 403. Tento prístup sa na prvý pohľad zdá rozumný; avšak pretože WordPress načítava niektoré statické súbory z tohto adresára, môže to spôsobiť neočakávané problémy. Napríklad blokový editor sa nemusí otvoriť, niektoré JavaScript súbory sa nemusia načítať alebo môžu byť viditeľné malé, ale kritické poruchy dizajnu na prednej strane.
Zavedenie pravidla bez testovania
Jednoznačná chyba v konfiguračnom súbore .htaccess alebo Nginx môže spôsobiť chybu 500 Internal Server Error. Najmä na stránkach s vysokou návštevnosťou je riskantné zavádzať pravidlo priamo do prevádzky. Predtým by ste mali zálohovať súbor, ak je to možné, vyskúšať ho v staging prostredí a potom ho zaviesť do produkcie pod kontrolou. Ak sa na infraštruktúre Hostragons používajú možnosti staging alebo zálohovania, môžete pridať Zálohovanie web hostingu ako prirodzený interný odkaz.
Úplná dôvera v bezpečnostný plugin
Bezpečnostné pluginy sú užitočné; avšak pravidlá na úrovni webového servera sa aktivujú skôr. Ak je požiadavka zablokovaná Apache alebo Nginx pred tým, než sa dostane k PHP, znižuje sa aj spotreba zdrojov. Preto by sa základné pravidlá servera nemali zanedbávať, aj keď je plugin nainštalovaný.
Kontrolný zoznam pred aplikovaním
Pred obmedzením prístupu do wp-includes je dobré vykonať krátku prípravu, čo významne znižuje riziko výpadku. Nasledujúci kontrolný zoznam sa odporúča najmä pre živé WordPress stránky:
- Urobte zálohu existujúcej konfigurácie .htaccess alebo Nginx.
- Aktualizujte jadro WordPressu, témy a pluginy.
- Uistite sa, že verzia PHP je podporovaná a bezpečná.
- Skontrolujte povolenia súborov: priečinky by mali mať zvyčajne 755, súbory 644.
- Nenechávajte nepotrebne otvorené zápisové povolenia pre kritické súbory ako wp-config.php a .htaccess.
- Ak používate cache, CDN alebo bezpečnostný plugin, naplánujte vyčistenie cache po zmene.
- Vytvorte si zoznam kritických oblastí, ktoré budete testovať, ako je administračný panel, domovská stránka, stránka s príspevkami, kontaktný formulár a stránka s platbami.
Tieto prípravy trvajú približne 10-15 minút; avšak zabránenie výpadku, ktorý môže trvať hodiny, spôsobenému nesprávnym pravidlom je cenné. Pre firemné stránky je bezpečnejšie vykonávať zmeny v časoch s nízkou návštevnosťou.
Zablokovanie prístupu k PHP v wp-includes pomocou .htaccess na Apache serveri
Najbežnejšou metódou na zdieľaných hostingu s Apache je súbor .htaccess. Správne pravidlá pridané do .htaccess súboru nachádzajúceho sa v hlavnom adresári WordPress môžu zablokovať určité PHP volania v priečinku wp-includes. Pred začatím si stiahnite kópiu súboru na váš počítač alebo vytvorte zálohu prostredníctvom súborového manažéra vo vašom hostingovom paneli.
Odporúčané pravidlo .htaccess
Nasledujúci prístup sa sústreďuje na zablokovanie priameho prístupu k PHP v wp-includes a zachovanie funkčnosti statických súborov:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^wp-includes/.*[.]php$ - [F,L]
</IfModule>
Logika tohto pravidla je jednoduchá: Ak URL začína na wp-includes a končí na .php, požiadavka je zakázaná. Týmto spôsobom nie je možné volať PHP súbory v wp-includes z prehliadača. Na druhej strane prístup k statickým súborom ako .js, .css, .png, .svg zostáva zachovaný. Toto je bezpečnejšia rovnováha pre prednú stránku WordPressu a administračný panel.
Zakázanie zoznamovania adresárov
Ďalším kritickým nastavením je zakázanie zoznamovania adresárov. Ak je na serveri povolené zoznamovanie adresárov, používatelia môžu vidieť obsah niektorých priečinkov. Zvyčajne stačí pridať tento riadok do hlavného súboru .htaccess:
Options -Indexes
Tento riadok zabraňuje zobrazovaniu zoznamu súborov v priečinkoch bez indexového súboru. Na moderných hostingochnách je to často predvolene vypnuté; avšak je dobré to skontrolovať ako bezpečnostnú prax.
Testovanie po zmene
Po pridaní pravidla vykonajte nasledujúce testy:
- Otvoríte adresu siteadresiniz.com/wp-includes/; zoznam adresárov by sa nemal zobraziť.
- Pokúste sa priamo volať známy PHP súbor v wp-includes; mali by ste získať 403 alebo 404.
- Skontrolujte domovskú stránku, príspevok a administračný panel.
- Skontrolujte v nástrojoch pre vývojárov prehliadača v sekciách Console a Network, či sú chybové hlásenia 404/403.
- Ak používate plugin na cache alebo CDN, vyčistite cache.
Ako všetky testy prebehnú úspešne, pravidlo môže byť bezpečne ponechané v produkčnom prostredí. Ak dostanete 500 chybu, najrýchlejším riešením je odstrániť pridané riadky a obnoviť záložný súbor .htaccess.
Zablokovanie prístupu k PHP v wp-includes na Nginx serveri
Na VPS, dedikovaných alebo spravovaných serveroch používajúcich Nginx nefunguje .htaccess. Pravidlo je potrebné pridať do konfiguračného súboru Nginx, zvyčajne do serverového bloku. Na tento proces je potrebný prístup cez SSH a práva na úpravu konfiguračných súborov. Ak si nie ste istí, je bezpečnejšie požiadať o pomoc podporu hostingu.
Odporúčané pravidlo location pre Nginx
Základné pravidlo môže byť aplikované takto:
location ~* ^/wp-includes/.*[.]php$ {
deny all;
}
Toto pravidlo blokuje prichádzajúce požiadavky na PHP súbory v wp-includes. Po zmene je dôležité otestovať konfiguráciu:
nginx -t
Ak je test úspešný, Nginx sa znovu načíta:
systemctl reload nginx
Príkaz reload je kontrolovanejší ako príkaz restart; aktualizuje konfiguráciu bez úplného prerušenia existujúcich pripojení. Napriek tomu je v kritických lokalitách odporúčané vykonávať zmeny v časoch nízkej návštevnosti.
Dôležité poznámky pri používaní Nginx
- Uistite sa, že pravidlo je pridané do správneho serverového bloku; na rovnakom serveri môže existovať viacero stránok.
- Ak používate CDN alebo reverzný proxy, vykonajte skutočné testy až po vyčistení cache CDN.
- Overte, že konfigurácia PHP-FPM spracováva len potrebné súbory.
- Skontrolujte logy: access.log a error.log rýchlo ukážu chybnú konfiguráciu.
V prostredí Nginx môže nesprávne usporiadanie location spôsobiť neočakávané výsledky. Preto je dôležité skontrolovať, či sa pravidlo nekryje s permalinkmi WordPress a blokmi spracovania PHP.
Porovnanie metód
Nasledujúca tabuľka sumarizuje hlavné metódy na obmedzenie prístupu do wp-includes:
| Metóda | Vhodné prostredie | Výhoda | Na čo si dávať pozor |
|---|---|---|---|
| Pravidlo .htaccess | Apache a LiteSpeed hosting | Rýchlo sa aplikuje, je prístupné na zdieľanom hostingu | Chybné syntaxe môžu spôsobiť chybu 500 |
| Pravidlo location pre Nginx | VPS, dedikovaný, spravovaný server | Silné a výkonné na úrovni servera | Vyžaduje prístup cez SSH a znalosti konfigurácie |
| Bezpečnostný plugin | Pre používateľov s obmedzenými technickými znalosťami | Jednoduché spravovanie prostredníctvom rozhrania | Nie všetky pravidlá sa môžu aplikovať na úrovni servera |
| WAF a CDN | Pre stránky s vysokou návštevnosťou alebo pod útokom | Rýchlo filtruje bota, brute force a zlé požiadavky | Chybné pravidlo môže zablokovať skutočných používateľov |
| Povolenia súborov | Pre všetky WordPress stránky | Základná bezpečnostná hygiena | Samotné nezakazuje prístup k URL |
V praxi dosiahnete najlepšie výsledky kombinovaním týchto metód. Napríklad v Apache hostingu s pravidlom .htaccess, správnymi povoleniami súborov, aktuálnym jadrom WordPress, SSL a pravidelným zálohovaním vytvoríte viacúrovňovú obranu. Pretože bezpečnostný firewall a izolácia sú dôležité v hostingovej infraštruktúre, Firemný Hosting sa stáva kľúčovým pre kritické stránky.
Povolenia a nastavenia vlastníctva súborov
Zablokovanie prístupu do wp-includes bude neúplné, ak sú povolenia nesprávne. Vo WordPress sa za bežne akceptované považujú hodnoty 755 pre priečinky a 644 pre súbory. Tieto hodnoty umožňujú webovému serveru čítať súbory a znižujú zbytočné povolenia na zápis. Na niektorých špeciálnych hostingových prostrediach môžu existovať rôzne konfigurácie používateľov a skupín; preto by ste mali zohľadniť aj odporúčania vášho panela.
Najmä povolenie 777 predstavuje vážne bezpečnostné riziko. Možnosť, že každý môže zapisovať do priečinka, uľahčuje scénáre nahrávania škodlivých súborov. Dokonca aj v priečinkoch, ako je wp-content/uploads, kde by malo byť povolené zapisovanie, by sa malo zabrániť spúšťaniu PHP. Priečinok wp-includes by mal byť za normálnych okolností zapisovateľný len v rámci aktualizácií WordPressu a nemal by byť prístupný používateľom.
Pri bezpečnostnom audite môžu byť skontrolované nasledujúce hodnoty:
- Priečinok wp-includes: zvyčajne 755
- PHP súbory v wp-includes: zvyčajne 644
- wp-config.php: ak je to možné, 600 alebo iné prísne povolenie vhodné pre hosting
- .htaccess: zvyčajne 644, bez zbytočných povolení na zápis po úprave
Tieto nastavenia sa nemusia správať rovnako na každom serveri. Nesprávne povolenia môžu spôsobiť, že stránka nebude môcť vykonávať aktualizácie alebo čítať súbory. Po vykonaní zmien by sa mala skontrolovať zdravie WordPressu a chyby v logoch.
Robia bezpečnostné pluginy túto operáciu?
Bezpečnostné pluginy ako Wordfence, iThemes Security môžu automaticky navrhovať niektoré hardening pravidlá. Tieto pluginy sú užitočné v oblastiach ako ochrana pred brute force, sledovanie zmien súborov, skenovanie na škodlivý softvér a zabezpečenie prihlásenia. Avšak je potrebné skontrolovať, čo plugin robí pri zablokovaní prístupu do wp-includes.
Niektoré pluginy automaticky pridávajú pravidlo do súboru .htaccess. Iné zabezpečujú ochranu len na úrovni aplikácie. Ochrana na úrovni aplikácie sa aktivuje až po dosiahnutí požiadavky WordPressu, a preto nie je taká rýchla ako blokovanie na úrovni servera. Preto je najlepším prístupom vyhodnotiť plugin spolu s konfiguráciou servera.
Ak používate bezpečnostný plugin, vykonajte nasledujúce kontroly:
- Skontrolujte, či plugin pridáva pravidlo do .htaccess alebo Nginx.
- Uistite sa, že sa neukazujú konflikty s dvoma pravidlami, ktoré robia to isté.
- Overte, či sa bezpečnostné nastavenia nezmenili po aktualizácii pluginu.
- Sledujte výkon a využitie serverových zdrojov, aby ste vyhodnotili dopad na výkon.
Používanie viacerých bezpečnostných pluginov súčasne nie je zvyčajne dobrý nápad. Konfliktné pravidlá firewallu, prihlásenia a prepisovania môžu znižovať výkon alebo spôsobovať nesprávne blokovanie.
Testovanie ochrany wp-includes: Praktický scenár
Aby ste zistili, či aplikácia funguje úspešne, nestačí len otvoriť stránku. Nasledujúci praktický test s 7 krokmi je realizovateľný vo väčšine inštalácií WordPress od malých podnikových stránok po e-commerce projekty:
- 1. Otvorte domovskú stránku v inkognito okne a skontrolujte, či nedošlo k vizuálnym poruchám.
- 2. Navštívte blogový príspevok, stránku kategórie a stránku výsledkov vyhľadávania.
- 3. Prihláste sa do panela wp-admin; otvorte blokový editor a knižnicu médií.
- 4. Skontrolujte sekciu Console v nástrojoch pre vývojárov prehliadača.
- 5. Overte, že sa nepotláčajú zbytočné statické súbory pod wp-includes v sekcii Network.
- 6. Pokúste sa priamo zavolať PHP súbor pod wp-includes; očakávajte odpoveď 403 alebo 404.
- 7. Skontrolujte serverové logy na nové a opakované chyby.
Tento test trvá približne 5 minút a rýchlo identifikuje nesprávne konfigurácie. Najmä na stránkach s platobnými procesmi ako WooCommerce by sa mali testovať aj stránky s nákupným košíkom, platbami a používateľskými účtami. Na stránkach, ktoré generujú živý príjem, môže aj malá blokácia JavaScriptu ovplyvniť konverzný pomer.
Dodatočné opatrenia na zabezpečenie štruktúry priečinkov WordPress
Ochrana wp-includes je dobrý začiatok; avšak bezpečnosť WordPressu je potrebné premýšľať komplexne. Nasledujúce dodatočné opatrenia ešte viac znižujú plochu útoku:
- Udržujte jadro aktuálne namiesto snaženia sa o skrytie verzie WordPressu.
- Úplne odstráňte nepoužívané témy a pluginy.
- Snažte sa skomplikovať používateľské meno administrátora, aby ho bolo ťažké uhádnuť.
- Používajte dvojfaktorovú autentifikáciu.
- Ak nepoužívate XML-RPC, obmedzte naň prístup.
- Pre wp-login.php implementujte obmedzenie rýchlosti alebo dodatočnú autentifikáciu.
- Realizujte automatické zálohy a testy obnovy.
- Používajte HTTPS na celom webe; bez SSL sú prihlasovacie údaje ohrozené.
SSL priamo nezakazuje prístup do wp-includes; avšak poskytuje základnú bezpečnosť pre používateľské relácie, údaje formulárov a prevádzku administračného panela. Preto je SSL vždy jednou z prvých vrstiev v bezpečnostných príručkách WordPressu. V tomto ohľade môžu byť odkazy kúpiť certifikát SSL a Inštalácia bezplatného SSL prirodzene zahrnuté v obsahu.
Kedy by ste mali vyhľadať profesionálnu pomoc?
Pridať pravidlo .htaccess na jednoduchom Apache hostingu je pre väčšinu používateľov spravovateľná úloha. Avšak, ak ide o špeciálne Nginx konfigurácie, viacero stránok, obchod WooCommerce, informačnú stránku s vysokou návštevnosťou alebo firemný portál, môže byť rozumnejšie získať profesionálnu pomoc. Pretože bezpečnostné pravidlo musí byť implementované nielen technicky správne, ale aj bezpečne z pohľadu kontinuity podnikania.
Odporúča sa odborná pomoc v týchto prípadoch:
- Ak hostíte viacero WordPress stránok na serveri.
- Ak používate Nginx, Varnish, CDN a WAF spoločne.
- Ak po posledných zmenách narastá počet chýb 403, 404 alebo 500.
- Ak stránka predtým zažila infikovanie malwareom.
- Ak prevádzkujete systém spracovávajúci platby, členstvá alebo osobné údaje.
Bezpečná hostingová infraštruktúra, správna izolácia, pravidelné zálohovanie a odborná pomoc sú neviditeľné, ale kľúčové komponenty bezpečnosti WordPressu. Pri výbere infraštruktúry by ste sa mali zohľadniť nielen priestor na disku; ale aj zálohovanie, firewall, podpora verzie PHP, správa SSL a kvalita technickej podpory. V tomto kontexte môžu byť Hostragons hostingové balíky a Presun webovej stránky WordPress pre čitateľa užitočné.
Záver
Správny spôsob, ako zablokovať prístup do priečinka wp-includes v rámci bezpečnosti štruktúry priečinkov WordPress, nie je úplné zablokovanie priečinka; ale zablokovanie priameho prístupu k PHP súborom v wp-includes a deaktivácia zoznamovania adresárov. Tento proces môže byť rýchlo realizovaný pomocou .htaccess pre Apache a pravidiel location pre Nginx. Avšak pred každou zmenou je potrebné zálohovať a následne testovať administračný panel a prednú stránku.
V skratke: neporušujte statické súbory, obmedzujte prístup k PHP, zakážte zoznamovanie adresárov, kontrolujte povolenia súborov a pravidelne aktualizujte. Pre bezpečnejšiu a spravovateľnejšiu infraštruktúru WordPress sa môžete pozrieť na hosting, domény a SSL riešenia od Hostragons a požiadať o podporu s konfiguráciou podľa vašich potrieb.
Často kladené otázky
Je bezpečné úplne zatvoriť priečinok wp-includes?
Vo všeobecnosti sa to neodporúča. V priečinku wp-includes sa nachádzajú JavaScript, CSS a statické súbory, ktoré WordPress potrebuje. Úplné zablokovanie môže narušiť vzhľad stránky alebo administračného panela. Bezpečnejší prístup je zablokovať priamy prístup k PHP súborom v tomto priečinku.
Čo robiť, ak po pridaní pravidla .htaccess dostanem chybu 500?
Najprv odstráňte posledné pridané pravidlá alebo obnovte záložný súbor .htaccess. Potom skontrolujte pravidlo na chyby v syntaxi. Ak problém pretrváva, skontrolujte logy hostingu alebo požiadajte o technickú podporu.
Funguje .htaccess na Nginx serveri?
Nie. .htaccess sa používa v prostredí Apache a LiteSpeed. Na serveroch Nginx sa podobné obmedzenia realizujú pomocou pravidiel location v serverovom bloku a po zmene je potrebné testovať konfiguráciu pomocou nginx -t.
Robí tento proces moju WordPress stránku úplne bezpečnou?
Nie. Zablokovanie prístupu k PHP v wp-includes je dôležitou bezpečnostnou vrstvou, ale samo o sebe nestačí. Musia sa aplikovať aktualizácie, silné heslá, dvojfaktorová autentifikácia, SSL, zálohovanie, firewall a správne povolenia súborov spoločne.
Ak používam bezpečnostný plugin, mal by som tiež pridať pravidlo pre wp-includes?
To závisí od toho, aké pravidlá plugin uplatňuje. Niektoré pluginy pridávajú pravidlo do .htaccess, iné poskytujú ochranu len na úrovni aplikácie. Bez konfliktu je obvykle silnejším riešením obmedziť prístup k PHP na úrovni servera.