Dodatna zaštita WordPressa: dozvole, wp-config i .htaccess
Ažuriranja, jaka lozinka i provjera u dva koraka temelj su sigurne WordPress stranice. Ojačavanje (hardening) ide korak dalje: stranicu postavljate tako da sigurnosni propust ili preuzeti korisnički račun mogu napraviti manje štete. Ovdje ćete pročitati o kojim se postavkama radi i kako ih postaviti na Vašem hosting paketu.
Što je na poslužitelju već riješeno
Dio toga već je riješen na našim poslužiteljima. xmlrpc.php je prema zadanim postavkama zatvoren (WordPress: pristup datoteci xmlrpc.php ne uspijeva), opasne PHP funkcije su isključene (PHP sigurnost: onemogućene funkcije), a rade i vatrozid za web promet i skener zlonamjernog softvera. Pogledajte Web Application Firewall i Imunify360: skeniranje Vaše web stranice na zlonamjerni softver. Korake u nastavku izvodite sami, na vlastitoj stranici.
Sve datoteke uređujete u DirectAdminu putem Upravitelja datoteka (File Manager). Datoteke koje počinju točkom, poput .htaccess, vidjet ćete tek kada uključite prikaz skrivenih datoteka: pogledajte Prikaz i uređivanje skrivenih datoteka poput .htaccess. Najprije napravite kopiju svake datoteke i spremite je izvan mape public_html.
1. Bez uređivanja koda iz administracije
Otvorite wp-config.php u mapi domains/example.com/public_html i dodajte ovaj redak iznad retka s porukom "prestanite s uređivanjem" (That's all, stop editing!):
define( 'DISALLOW_FILE_EDIT', true );
Uređivači datoteka tema i dodataka tada nestaju iz administracije. Tko preuzme administratorski račun, ne može tamo s nekoliko klikova ubaciti zlonamjerni kod u Vašu temu. Instaliranje i ažuriranje dodataka i dalje normalno radi. U istoj datoteci postavite WP_DEBUG na false, kako se poruke o pogreškama nikada ne bi prikazivale posjetiteljima.
2. Bez PHP-a u mapi uploads
U mapu wp-content/uploads pripadaju slike i dokumenti, a ne PHP. Napadač koji preko propusta može učitati datoteku pokušat će upravo tamo postaviti PHP datoteku i pokrenuti je. U mapi wp-content/uploads izradite datoteku .htaccess sa sadržajem:
<Files *.php> Require all denied </Files>
Zatim provjerite rade li Vaša stranica, obrasci i medijska biblioteka i dalje.
3. Bez popisa sadržaja mapa
Ako u mapi nema datoteke index.php ili index.html, web poslužitelj može prikazati popis svih datoteka. Na vrh datoteke .htaccess u mapi public_html dodajte:
Options -Indexes
Testirajte tako da otvorite mapu bez indeksne datoteke, primjerice https://example.com/wp-content/uploads/. Trebali biste vidjeti stranicu s pogreškom (403 ili 404), a ne popis.
4. Dozvole datoteka i mapa
| Što | Dozvole |
|---|---|
| Mape | 755 |
| Datoteke | 644 |
wp-config.php | Strože: 600 ili 640. Pokušajte s 600 i provjerite radi li Vaša stranica i dalje. |
Nikada ne koristite 777: tada svatko na poslužitelju smije pisati u tu mapu. Ako neki priručnik tvrdi da je to potrebno kako bi učitavanje radilo, uzrok je negdje drugdje. Za promjenu dozvola pogledajte Dozvole datoteka i mapa (chmod).
5. Bez ostataka u web mapi
Sve u mapi public_html dostupno je putem weba. Zato počistite:
- kopije datoteke
wp-config.php, poputwp-config.php.bakiliwp-config.old. One sadrže lozinku Vaše baze podataka i šalju se kao običan tekst; - sigurnosne kopije poput
backup.zipilidatabase.sql; - mapu
.gitkoju je ostavio razvojni programer; wp-content/debug.log;- testne datoteke poput
info.phpsphpinfo().
Želite li jednu pojedinačnu datoteku učiniti nedostupnom, pogledajte Blokiranje datoteka putem .htaccess.
6. Zaglavlja i prijava
- Sigurnosna zaglavlja govore pregledniku kako postupati s Vašom stranicom. Pogledajte HSTS i sigurnosna zaglavlja za Vašu web stranicu.
- Stranicu za prijavu ograničite na vlastitu IP adresu uz pomoć članka Zaštita WordPress datoteke wp-login.php.
- Provjera u dva koraka za administratore: pogledajte Postavljanje provjere u dva koraka za WordPress.
Skrivanje verzije WordPressa samo je pospremanje, a ne zaštita: programi za napade jednostavno isprobaju propust. Samo ažuriranje zatvara propust.
A sigurnosni dodatak?
Sigurnosni dodatak često objedinjuje vatrozid, skener i zaštitu prijave. Vatrozid u dodatku radi tek kada se WordPress već pokrene; vatrozid na poslužitelju zaustavlja zahtjeve ranije. Dodatak je stoga nadopuna, ponajprije za provjeru u dva koraka i ograničavanje pokušaja prijave. Koristite najviše jedan: dva sigurnosna dodatka istodobno često se međusobno sukobljavaju.
.htaccess ili wp-config.php može srušiti cijelu stranicu. Pogledajte Pogreška 500 ili "kritična pogreška" na Vašoj web stranici (i nakon ažuriranja WordPressa).Dodatno čitanje
- Hardening WordPress (developer.wordpress.org, na engleskom)
Želite li naučiti više? Pohađajte besplatni WordPress tečaj, lekcija 7.4 Ojačavanje stranice: dozvole, zaglavlja i sigurnosni dodaci.
