Čo je súbor .htaccess a ako ho použiť?
Htaccess je textový súbor, ktorý umožňuje autorovi webovej stránky nastaviť vybrané vlastnosti servera. Pritom nie je potrebný ani úplný prístup správcu. Súbor ovplyvňuje správanie servera len pre konkrétny adresár a podadresáre na serveri. WordPress ho v zásade využíva pre nastavenie správania sa generovaných URL adries, aby boli prívetivé pre vyhľadávače.
Kde sa súbor .htaccess nachádza?
Súbor nájdete v koreňovej zložke hostingu. Prihláste sa k FTP pomocou vybraného klienta a súbor by ste mali hneď vidieť. Stáva sa však, že súbor po prihlásení v FTP klientovi nevidíte.
Riešenie je pomerne jednoduché. V nastavení programu (Total Commander, WinSCP či FileZilla) postačí vynútiť zobrazovanie skrytých súborov. Ak súbor napriek tomu neuvidíte, môžete ho na server nahrať ručne alebo v nastavení WordPress kliknite na „Nastavenie“ > „Trvalé odkazy“, a tu zmeňte nastavenie na iné ako základné a dajte uložiť. V tejto chvíli by už súbor mal na serveri byť. Potom prepnite nastavenie späť.
Editácia .htaccess
Pre úpravu súboru poslúži ľubovoľný textový editor od poznámkového bloku po vývojársky PSPad Editor. Skôr ako súbor začnete editovať, urobte jeho zálohu do svojho počítača. Predídete tak prípadným problémom a nastavenie budete môcť v prípade potreby vrátiť späť.
1. Uzamknutie administrácie pred nepozvanými hosťami
Jednou z možností využitia súboru .htaccess je zabezpečenie správy webu podľa IP adresy. Pripojenie do správy webu môžete obmedziť na konkrétne IP adresy a miesta. Využitie tejto možnosti je vhodné v prípade, že sa do nastavení pripájate pravidelne z jedného PC či niekoľkých málo počítačov fungujúcich na statickej IP adrese. Nasledujúci kód môžete použiť prekopírovaním do súboru .htaccess:
AuthUserFile /dev/null
AuthGroupFile /dev/null
AuthName "WordPress Admin Access Control"
AuthType Basic
<LIMIT GET>
order deny,allow
deny from all
# Povolená IP adresa 1:
allow from xx.xx.xx.xxx
# Povolená IP adresa 2:
allow from xx.xx.xx.xxx
</LIMIT>
Pamätajte na výmenu povolených IP adries za vlastné. Povolených adries môže byť ľubovoľný počet.
2. Ochrana administrácie ďalším heslom
Pripájate sa k WordPressu z rôznych miest a nechcete byť obmedzovaní konkrétnou IP adresou? Zvoľte zabezpečenie heslom. Prvým krokom bude vygenerovanie .htpasswds súboru pomocou online generátora. Potom ho nahrajte do zložky, ktorá nie je verejne prístupná. Odporúčame nasledujúci štýl:
/home/user/.htpasswds/public_html/wp-admin/passwd/
Teraz môžete pristúpiť k samotnému .htaccess súboru, do ktorého nakopírujte nasledujúce riadky kódu:
AuthName "Admins Only"
AuthUserFile /home/yourdirectory/.htpasswds/public_html/wp-admin/passwd
AuthGroupFile /dev/null
AuthType basic
require user putyourusernamehere
<Files admin-ajax.php>
Order allow,deny
Allow from all
Satisfy any
</Files>
Cestu k súboru ešte nahraďte za „AuthUserFile“ za cestu zodpovedajúcu štruktúre vášho hostingu.
3. Zakázanie prechádzania zložiek
Vedeli ste, že verejné zobrazovanie obsahu zložiek môžete zakázať? Útočníci potom neuvidia súbory nachádzajúce sa na vašom hostingu. Tento krok je odporúčaný väčšinou bezpečnostných odborníkov.
Pre aktiváciu postačí pridať tento riadok do súboru .htaccess:
Options -Indexes
4. Zakázanie spustenia PHP súborov vo vybraných WordPress zložkách
Častým spôsobom ako sa útočníci snažia nabúrať do redakčného systému je využitie tzv. backdoorov (zadných dvierok). Väčšinou ide o súbor, ktorý sa útočníkovi podarí prepašovať na váš hosting, vďaka ktorému môže následne vykonávať ďalšie príkazy a ovládať váš web.
Prevenciou je vloženie nasledujúceho kódu do nového súboru .htaccess:
<Files *.php>
deny from all
</Files>
Súbor potom nahrajte do každej z nasledujúcich zložiek:
- /wp-content/uploads/
- /wp-includes/
5. Zabezpečenie súboru s konfiguráciou wp-config.php
Jedným z najdôležitejších súborov na vašich WordPress stránkach je súbor wp-config.php. Obsahuje totiž prístupové údaje do databázy, vrátane hesiel.
Pre zabezpečenie súboru wp.config.php vložte do hlavného .htaccess súboru nasledujúci kód:
<files wp-config.php>
order allow,deny
deny from all
</files>
6. Zakázanie prístupu určitým IP adresám
Všimli ste si neobvykle vysoký počet požiadaviek na váš web z konkrétnych IP adries? Ak sa vám toto správanie zdá podozrivé, môžete zablokovať prístup na váš web konkrétnym IP adresám.
Do .htaccess súboru pridajte nasledujúce riadky a nahraďte xxx za danú IP adresu:
<Limit GET POST>
order allow,deny
deny from xxx.xxx.xx.x
allow from all
</Limit>
7. Zakázanie skenovania autorov vo WordPress
Obľúbenou technikou útočníkov je tzv. útok hrubou silou. Pri ňom najskôr dôjde ku skenovaniu, kedy útočníci zistia prihlasovacie mená autorov webu. Potom už im stačí uskutočniť slovníkový či brute force útok na ich heslá a môžu tak získať prístup do administrácie vášho WordPressu.
Najjednoduchšou cestou je zablokovať skenovanie autorov skrz .htaccess súbor:
# BEGIN block author scans
RewriteEngine On
RewriteBase /
RewriteCond %{QUERY_STRING} (author=\d+) [NC]
RewriteRule .* - [F]
# END block author scans
8. Zakázanie prístupu externých aplikácií k WordPress
Každá inštalácia WordPress v sebe ukrýva súbor xmlrpc.php. Súbor umožňuje službám tretích strán pristupovať k WordPressu. Ak žiadnu takú službu nepoužívate, bezpečnostní odborníci odporúčajú zablokovať prístup k tomuto súboru.
Spôsobov, ako na to, je niekoľko. My uvádzame vloženie nasledujúcich riadkov kódu do .htaccess:
# Block WordPress xmlrpc.php requests
<Files xmlrpc.php>
order deny,allow
deny from all
</Files>
Tip na záver: Zabezpečenie samotného .htaccess pred neautorizovaným prístupom
Ukázali sme si dôležitosť súboru .htaccess ktorý, ako sme videli, toho dokáže mnoho ovplyvniť. Samotný súbor je preto vhodné tiež zabezpečiť pred útočníkmi. Odporúčame použitie nasledujúceho radu kódov:
<files ~ "^.*\.([Hh][Tt][Aa])">
order allow,deny
deny from all
satisfy all
</files>