Zabezpečení

Jak zabezpečit WordPress složku wp-includes: Zákaz přístupu k PHP souborům

  • 11 minut na čtení
  • Tým Hostragons
Jak zabezpečit WordPress složku wp-includes: Zákaz přístupu k PHP souborům

Pro zabezpečení struktury složek WordPressu je nejbezpečnější cestou zablokovat přímý přístup k PHP souborům ve složce „wp-includes“ a zároveň zakázat výpis obsahu adresáře, místo aby se zcela blokoval přístup ke všem souborům ve složce. Důvodem je, že wp-includes obsahuje nezbytné JavaScripty, CSS a další statické soubory, bez kterých by mohlo dojít k problémům s designem webu, editorem nebo funkcemi pluginů. Správným postupem je na Apache serveru přidat pravidla do .htaccess a na Nginxu pomocí location bloků zablokovat přístup k PHP souborům, a poté ověřit funkčnost webu pomocí testů a kontrol HTTP odpovědí 403/404.

Častou chybou při zabezpečení WordPressu je spoléhat se pouze na silná hesla nebo bezpečnostní pluginy. Útočníci často skenují právě složky obsahující jádro WordPressu, staré pluginy, nesprávná oprávnění nebo zapnutý výpis adresářů. Složka wp-includes bývá jedním z hlavních cílů těchto útoků. Tento návod vám ukáže praktické kroky, jak přístup do wp-includes omezit, které konfigurace mohou způsobit problémy, ukázky nastavení pro Apache i Nginx, metody testování a kontrolní seznam pro údržbu. Pro zvýšení bezpečnosti vašeho WordPressu doporučujeme také využít WordPress hosting a SSL certifikáty jako SSL certifikát.

Co je složka wp-includes a proč ji chránit?

Wp-includes je jedna z klíčových složek jádra WordPressu obsahující základní knihovny. Najdete zde komponenty pro systém šablon, blokový editor, REST API, práci s médii, třídy, funkce a různé JavaScriptové soubory. Stručně řečeno, wp-includes je jako strojovna WordPressu a uživatelé by ji neměli přímo navštěvovat.

Normální návštěvník nemusí otevírat adresu site.cz/wp-includes/. Nicméně v kódu stránek se mohou načítat některé statické soubory z této složky, například výchozí skripty WordPressu, emoji skripty nebo součásti editoru. Proto je třeba zabezpečit přístup tak, aby se PHP soubory nemohly spouštět přímo, ale statické soubory zůstaly dostupné.

Tento přístup je základem profesionální ochrany struktury WordPress složek. Náhodné blokování celé složky může vést k bílým stránkám, rozbitým administrátorským panelům, nefunkčnímu blokovému editoru či chybám ve vzhledu šablony. Cílem je ochránit potřebné soubory WordPressu a zároveň minimalizovat prostor pro útoky.

Co získáte zablokováním přístupu k wp-includes?

Zablokování přímého spuštění PHP souborů ve složce wp-includes nezastaví všechny útoky, ale výrazně sníží riziko. Útočníci se často snaží nahrát škodlivé PHP soubory nebo využít existující soubory k útoku. Zakázáním spuštění PHP v této složce vytvoříte další vrstvu ochrany.

Tento krok přináší tyto výhody:

  • Omezuje přímé volání jádrových PHP souborů přes URL.
  • Pomáhá zabránit zobrazení obsahu složky při zapnutém výpisu adresáře.
  • Snižuje zbytečné úniky informací při automatických bot skenech.
  • Poskytuje ochranu na úrovni webového serveru i bez dalších bezpečnostních pluginů.
  • Spolu s WAF, SSL, aktuálním PHP a správnými oprávněními posiluje vícevrstvou obranu.

Důležité je si uvědomit, že jde o jednu z vrstev zabezpečení. Pokud máte zastaralé pluginy, slabá hesla nebo kompromitovaný FTP účet, samotné omezení přístupu k wp-includes nestačí. Bezpečnost je kombinací kvalitního hostingu, správné konfigurace, uživatelského managementu a pravidelné údržby. Pro kvalitní základ doporučujeme rovněž Bezpečný Web Hosting a pro ochranu správy domény Bezpečnost domény.

Nejčastější chyby při blokaci wp-includes

Blokace celé složky

Nejčastější chybou je zablokovat všechny HTTP požadavky na složku wp-includes pomocí kódu odpovědi 403. Na první pohled to dává smysl, ale protože WordPress načítá z této složky některé statické soubory, může dojít k nefunkčnosti blokového editoru, chybám při načítání JavaScriptů nebo drobným, ale kritickým problémům ve vzhledu webu.

Nasazení pravidel bez testování

U pravidel v .htaccess nebo Nginx konfiguraci může i malá chyba způsobit chybu 500 Internal Server Error. U webů s vysokou návštěvností je proto riskantní nasazovat pravidla přímo na produkční prostředí. Nejprve si vždy udělejte zálohu, pokud možno testujte na stagingu a až poté přejděte na živý web. Pokud používáte služby Hostragons, můžete využít Zálohování web hostingu jako přirozený odkaz.

Spoléhat se jen na bezpečnostní plugin

Bezpečnostní pluginy jsou užitečné, ale pravidla na úrovni webového serveru zablokují škodlivé požadavky ještě dříve, než se spustí PHP. Tím se šetří systémové zdroje. Proto by základní pravidla měla být vždy implementována i na serveru, i když používáte bezpečnostní pluginy.

Kontrolní seznam před nasazením

Před omezením přístupu k wp-includes proveďte pár přípravných kroků, které výrazně sníží riziko výpadku. Tento seznam je vhodný zejména pro živé WordPress stránky:

  • Zálohujte aktuální konfigurace .htaccess nebo Nginx.
  • Aktualizujte WordPress jádro, šablony a pluginy.
  • Ujistěte se, že používáte podporovanou a bezpečnou verzi PHP.
  • Zkontrolujte oprávnění souborů – složky by měly mít 755, soubory 644.
  • Omezte zápisová práva u kritických souborů jako wp-config.php a .htaccess.
  • Pokud používáte cache, CDN nebo bezpečnostní plugin, naplánujte po změně vyčištění cache.
  • Sestavte seznam kritických funkcí k otestování – přihlášení do adminu, hlavní stránka, příspěvky, kontaktní formulář a platební brána.

Příprava obvykle zabere 10–15 minut, ale může vám ušetřit hodiny řešení problémů. Na korporátních webech je nejlepší změny provádět v době nižší návštěvnosti.

Blokace PHP ve wp-includes na Apache pomocí .htaccess

Na sdílených hostinzích s Apache je nejběžnější cesta úprava souboru .htaccess v kořenovém adresáři WordPressu. Správné pravidlo zde zabrání přístupu k PHP souborům ve wp-includes. Než začnete, stáhněte si kopii .htaccess pro případ obnovení.

Doporučené pravidlo do .htaccess

Následující pravidlo zablokuje přístup k PHP souborům uvnitř wp-includes a přitom ponechá dostupné statické soubory:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^wp-includes/.*[.]php$ - [F,L]
</IfModule>

Princip je jednoduchý: pokud URL začíná wp-includes a končí .php, požadavek je zablokován s odpovědí 403 Forbidden. Statické soubory jako .js, .css nebo obrázky zůstanou dostupné. To umožňuje správnou funkci frontendu i administrace.

Zakázání výpisu adresáře

Další důležitou ochranou je vypnout výpis obsahu složek, pokud indexový soubor chybí. Přidejte do hlavního .htaccess řádek:

Options -Indexes

Tím zajistíte, že uživatelé neuvidí seznam souborů ve složkách bez indexu. Většina moderních hostingů má tuto volbu standardně vypnutou, ale je dobré ji explicitně nastavit.

Testování po úpravě

Po přidání pravidel proveďte tyto testy:

  • Otevřete site.cz/wp-includes/ – výpis adresáře by se neměl zobrazit.
  • Zkuste přímo volat známý PHP soubor ve wp-includes – měli byste dostat 403 nebo 404.
  • Ověřte, že hlavní stránka, blog a admin panel fungují bez problémů.
  • V konzoli prohlížeče zkontrolujte, zda není chyba 403/404 u statických souborů.
  • Pokud používáte cache nebo CDN, proveďte jejich vyčištění.

Pokud se objeví chyba 500, co nejrychleji odstraňte nově přidaná pravidla a obnovte zálohu .htaccess.

Blokace PHP ve wp-includes na Nginx

Na serverech s Nginx .htaccess nefunguje. Pravidla je třeba přidat přímo do konfiguračního souboru webu, obvykle do server bloku. K tomu potřebujete SSH přístup a oprávnění upravovat konfigurace. Pokud si nejste jistí, obraťte se na podporu hostingu.

Doporučené pravidlo location pro Nginx

Pravidlo vypadá takto:

location ~* ^/wp-includes/.*[.]php$ {
deny all;
}

To zakáže přístup k PHP souborům ve složce wp-includes. Po úpravě konfiguraci otestujte příkazem:

nginx -t

Pokud je konfigurace v pořádku, načtěte ji příkazem:

systemctl reload nginx

Příkaz reload načte konfiguraci bez restartu služby, což je bezpečnější u živých webů. I tak doporučujeme provádět změny v době nízkého provozu.

Důležité rady pro Nginx

  • Ujistěte se, že pravidlo přidáváte do správného server bloku, pokud běží na jednom serveru více webů.
  • Pokud používáte CDN nebo reverzní proxy, testujte až po vyčištění cache.
  • Ověřte, že PHP-FPM zpracovává pouze potřebné soubory.
  • Pravidelně sledujte logy access.log a error.log pro chyby způsobené novými pravidly.

Špatné pořadí location bloků může způsobit konflikty s WordPress permalink strukturou nebo PHP zpracováním, proto buďte opatrní.

Srovnání metod

Následující tabulka shrnuje hlavní způsoby omezení přístupu do wp-includes:

Srovnání metod
MetodaVhodné prostředíVýhodyNa co si dát pozor
.htaccess pravidlaApache a LiteSpeed hostingyRychlé nasazení, dostupné na sdílených hostinzíchChybná syntaxe může způsobit chybu 500
Nginx location pravidlaVPS, dedikované a managed serverySilná ochrana na úrovni serveru, vysoký výkonVyžaduje přístup k serveru a znalost konfigurace
Bezpečnostní pluginyUživatelé s omezenými technickými znalostmiSnadná správa přes administraciNemusí pokrýt pravidla na úrovni serveru
WAF a CDNWeby s vysokou návštěvností a útokyFiltrace škodlivých požadavků již na okraji sítěŠpatná konfigurace může blokovat i legitimní uživatele
Oprávnění souborůVšechny WordPress instalaceZákladní bezpečnostní opatřeníSama o sobě nezabrání přístupu přes URL

Nejlepší výsledek přináší kombinace výše uvedených metod: správná oprávnění, aktuální WordPress, SSL, zálohy a pravidla na webovém serveru tvoří pevnou obranu. Pro firemní weby je důležité i izolace a firewall v rámci hostingu, proto volba Korporátní Hosting může být klíčová.

Správné oprávnění a vlastnictví souborů

Omezení přístupu k wp-includes je neúčinné, pokud jsou oprávnění nastavená nesprávně. Obecně platí pro WordPress složky oprávnění 755 a pro soubory 644, což umožňuje webovému serveru čtení, ale omezuje zbytečné zápisy. Některé hostingy mohou mít specifické požadavky na uživatele a skupiny, proto se řiďte doporučeními vašeho panelu.

Velmi nebezpečné je nastavení 777, které dovoluje zápis komukoli a usnadňuje nahrání škodlivých souborů. I ve složkách jako wp-content/uploads, kam je potřeba zápis, by měla být blokována možnost spouštění PHP. Složka wp-includes by za normálních okolností neměla být uživatelsky zapisovatelná mimo aktualizace WordPressu.

V rámci bezpečnostní kontroly doporučujeme ověřit následující:

  • wp-includes: 755
  • PHP soubory v wp-includes: 644
  • wp-config.php: ideálně 600 nebo dle hostingu co nejpřísnější
  • .htaccess: 644, bez zbytečných zápisových práv

Při nesprávném nastavení může dojít k problémům s aktualizacemi nebo čtením souborů. Doporučujeme po změnách provést kontrolu zdraví WordPressu a zkontrolovat error logy.

Dokážou bezpečnostní pluginy tuto ochranu zajistit?

Pluginy jako Wordfence nebo iThemes Security často automaticky navrhují některá bezpečnostní opatření. Nabízejí ochranu proti brute force útokům, kontrolu změn souborů, skenování malware a zabezpečení přihlašování. Nicméně je důležité zkontrolovat, zda skutečně přidávají pravidla pro zakázání přístupu k PHP ve wp-includes.

Některé pluginy automaticky upravují .htaccess, jiné fungují pouze na úrovni aplikace, což znamená, že žádost již dorazila na PHP a teprve tam je blokována. Serverová pravidla jsou efektivnější, protože blokují nežádoucí požadavky hned na začátku. Doporučujeme proto kombinovat pluginy s konfigurací serveru.

Pokud používáte více bezpečnostních pluginů, sledujte, zda jejich pravidla nekolidují. Konflikty mohou způsobit zpomalení webu nebo nežádoucí blokace.

Jak otestovat ochranu wp-includes: praktický scénář

Není dostačující, že web jen načte hlavní stránku. Pro ověření funkčnosti proveďte následujících 7 kroků, které jsou vhodné pro malé i větší WordPress projekty:

  • 1. Otevřete hlavní stránku v anonymním režimu a zkontrolujte, zda se nezobrazují vizuální chyby.
  • 2. Navštivte blogový příspěvek, stránku kategorií a výsledky vyhledávání.
  • 3. Přihlaste se do administrace WordPress, otevřete blokový editor a knihovnu médií.
  • 4. V nástrojích pro vývojáře zkontrolujte záložku Console, zda nejsou chyby.
  • 5. V záložce Network ověřte, že statické soubory z wp-includes nejsou blokovány.
  • 6. Zkuste přímo zavolat PHP soubor ve wp-includes; očekávejte 403 nebo 404 chybu.
  • 7. Prohlédněte si logy serveru, zda se neobjevují nové chyby nebo opakující se problémy.

Test zabere asi 5 minut a pomůže odhalit případné chyby nastavení. U e-shopů s WooCommerce nezapomeňte otestovat i košík, platební stránku a uživatelský účet. I drobný problém s JavaScriptem může ovlivnit konverzní poměr.

Další doporučená opatření pro zabezpečení WordPress složek

Ochrana wp-includes je dobrý začátek, ale bezpečnost je třeba vidět komplexně. Následující kroky dále snižují riziko útoků:

  • Nezkoušejte skrývat verzi WordPressu, raději ji mějte vždy aktuální.
  • Odstraňte nepoužívaná témata a pluginy.
  • Používejte těžko odhadnutelné uživatelské jméno pro admina.
  • Zapněte dvoufaktorové ověřování.
  • Pokud nevyužíváte XML-RPC, omezte k němu přístup.
  • U wp-login.php nastavte omezení počtu pokusů nebo přidejte další ověření.
  • Provádějte pravidelné automatické zálohy a testujte obnovu dat.
  • Používejte HTTPS na celém webu, bez SSL jsou data včetně hesel ohrožena.

SSL samo o sobě nepřímo nezakáže přístup ke složce wp-includes, ale zabezpečí přenos dat a správu uživatelských relací. Proto je v bezpečnostních doporučeních často první vrstvou. Vhodně je lze propojit s odkazy koupit SSL certifikát a Instalace bezplatného SSL.

Kdy vyhledat odbornou pomoc?

Úprava .htaccess pravidel na jednoduchém Apache hostingu zvládne většina uživatelů. Nicméně u serverů s Nginx, multisite instalací, WooCommerce e-shopem, weby s vysokou návštěvností nebo firemními portály je vhodnější využít zkušenosti profesionála. Bezpečnostní pravidla musejí být nejen technicky správná, ale i bezpečná pro provoz webu.

Doporučujeme pomoc v těchto situacích:

  • Máte na serveru více WordPress instalací.
  • Používáte kombinaci Nginx, Varnish, CDN a WAF.
  • Po změnách se zvyšují chyby 403, 404 nebo 500.
  • Web byl dříve napaden malwarem.
  • Provozujete systémy zpracovávající platby, osobní údaje nebo uživatelské účty.

Bezpečný hosting, správná izolace, pravidelné zálohy a podpora specialistů jsou klíčové součásti zabezpečení WordPressu. Při výběru hostingu hledejte nejen kapacitu disku, ale také kvalitu záloh, firewall, podporu PHP verzí, správu SSL a rychlou technickou podporu. V tomto ohledu vám mohou pomoci Hostragons hostingové balíčky a Přesun webu WordPress.

Závěr

Nejefektivnější způsob zabezpečení složky wp-includes je neblokovat ji celou, ale zamezit přímému spouštění PHP souborů a zakázat výpis adresáře. Pomocí .htaccess pravidel na Apache nebo location bloků na Nginxu lze tuto ochranu snadno implementovat. Vždy ale před změnou proveďte zálohu a po nasazení otestujte funkčnost webu a administrace.

Stručně: neblokujte statické soubory, omezte PHP přístup, vypněte výpis adresáře, zkontrolujte oprávnění a pravidelně aktualizujte. Pro profesionální správu WordPressu využijte hostingové a bezpečnostní služby Hostragons, které vám pomohou s konfigurací i podporou.

Často kladené otázky

Je bezpečné kompletně zablokovat složku wp-includes?

Obecně se to nedoporučuje. Ve složce jsou statické soubory, které WordPress potřebuje pro správný chod. Kompletní blokace může způsobit problémy s vizuálem nebo administrací. Bezpečnější je zakázat přístup jen k PHP souborům.

Co dělat, když po přidání .htaccess pravidel dostanu chybu 500?

Nejprve odstraňte nově přidaná pravidla nebo obnovte záložní .htaccess. Poté zkontrolujte syntaxi pravidel. Pokud problém přetrvává, prohlédněte si chybové logy hostingu nebo kontaktujte technickou podporu.

Funguje .htaccess na Nginx serveru?

Ne, .htaccess je specifický pro Apache a LiteSpeed. Na Nginxu je třeba použít pravidla v konfiguračních souborech pomocí location bloků a po změně konfiguraci otestovat příkazem nginx -t.

Zabezpečí tato metoda můj WordPress úplně?

Ne. Omezení přístupu k PHP ve wp-includes je důležitá vrstva, ale sama o sobě nestačí. Je třeba kombinovat aktualizace, silná hesla, dvoufaktorové ověřování, SSL, zálohy, firewall a správná oprávnění.

Pokud používám bezpečnostní plugin, musím přidávat i blokaci wp-includes?

Záleží na tom, co plugin dělá. Některé automaticky upravují .htaccess, jiné chrání jen na úrovni aplikace. Pro maximální bezpečnost je vhodné mít i serverová pravidla, která omezí přístup k PHP souborům.

Sdílejte tento článek:

Tým Hostragons

Aktuální průvodci od našeho týmu odborníků na hosting, servery a doménová jména. Pojďme společně najít to správné řešení pro váš projekt.

Kontaktujte nás