Papildoma WordPress apsauga: teisės, wp-config ir .htaccess
Atnaujinimai, stiprus slaptažodis ir dviejų veiksnių autentifikavimas yra saugios WordPress svetainės pagrindas. Sustiprinimas (hardening) eina dar toliau: svetainę nustatote taip, kad spraga ar perimta paskyra galėtų padaryti mažiau žalos. Čia rasite, kokie tai nustatymai ir kaip juos pritaikyti savo talpinimo plane.
Kas jau atliekama serveryje
Dalis dalykų mūsų serveriuose jau sutvarkyta. xmlrpc.php pagal numatytuosius nustatymus yra užblokuotas (WordPress: nepavyksta pasiekti xmlrpc.php), pavojingos PHP funkcijos išjungtos (PHP sauga: išjungtos funkcijos), be to, veikia interneto srauto ugniasienė ir kenkėjiškų programų skeneris. Žr. Žiniatinklio programų ugniasienė ir Imunify360: svetainės nuskaitymas dėl kenkėjiškų programų. Toliau aprašytus veiksmus atliekate patys, savo svetainėje.
Visus failus redaguojate DirectAdmin skiltyje File Manager. Failus, kurių pavadinimas prasideda tašku, pavyzdžiui, .htaccess, pamatysite tik įjungę paslėptų failų rodymą: žr. Paslėptų failų, tokių kaip .htaccess, rodymas ir redagavimas. Pirmiausia pasidarykite kiekvieno failo kopiją ir laikykite ją už public_html ribų.
1. Jokio kodo redagavimo per administravimo skydelį
Atidarykite wp-config.php aplanke domains/example.com/public_html ir įrašykite šią eilutę virš eilutės, kurioje parašyta „baikite redaguoti“ (That's all, stop editing!):
define( 'DISALLOW_FILE_EDIT', true );
Tada temų ir įskiepių failų redaktoriai dingsta iš administravimo skydelio. Perėmęs administratoriaus paskyrą asmuo nebegalės keliais paspaudimais įterpti kenkėjiško kodo į Jūsų temą. Įskiepių diegimas ir atnaujinimas veiks kaip įprasta. Tame pačiame faile nustatykite WP_DEBUG reikšmę false, kad klaidų pranešimai niekada nebūtų rodomi lankytojams.
2. Jokio PHP aplanke uploads
Aplanke wp-content/uploads turi būti paveikslėliai ir dokumentai, o ne PHP. Įsilaužėlis, kuris per spragą gali įkelti failą, kaip tik ten bando įkelti PHP failą ir jį iškviesti. Aplanke wp-content/uploads sukurkite failą .htaccess su šiuo turiniu:
<Files *.php> Require all denied </Files>
Po to patikrinkite, ar Jūsų svetainė, formos ir medijos biblioteka vis dar veikia.
3. Jokio aplankų turinio sąrašo
Jei aplanke nėra index.php arba index.html, žiniatinklio serveris gali parodyti visų failų sąrašą. Pačiame .htaccess failo, esančio public_html, viršuje įrašykite:
Options -Indexes
Tai patikrinsite atidarę aplanką be indekso failo, pavyzdžiui, https://example.com/wp-content/uploads/. Turėtumėte pamatyti klaidos puslapį (403 arba 404), o ne sąrašą.
4. Failų ir aplankų teisės
| Kas | Teisės |
|---|---|
| Aplankai | 755 |
| Failai | 644 |
wp-config.php | Griežčiau: 600 arba 640. Išbandykite 600 ir patikrinkite, ar svetainė vis dar veikia. |
Niekada nenaudokite 777: tada į tą aplanką gali rašyti bet kas serveryje. Jei instrukcijoje teigiama, kad to reikia, kad veiktų įkėlimas, priežastis slypi kitur. Kaip keisti teises: žr. Failų ir aplankų teisės (chmod).
5. Jokių likučių žiniatinklio aplanke
Viską, kas yra public_html, galima pasiekti per internetą. Todėl išvalykite:
wp-config.phpkopijas, pavyzdžiui,wp-config.php.bakarbawp-config.old. Jose yra Jūsų duomenų bazės slaptažodis ir jos pateikiamos kaip paprastas tekstas;- atsargines kopijas, pavyzdžiui,
backup.ziparbadatabase.sql; - kūrėjo paliktą aplanką
.git; wp-content/debug.log;- bandomuosius failus, pavyzdžiui,
info.phpsuphpinfo().
Jei norite padaryti nepasiekiamą vieną atskirą failą, žr. Failų blokavimas per .htaccess.
6. Antraštės ir prisijungimas
- Saugos antraštės nurodo naršyklei, kaip elgtis su Jūsų svetaine. Žr. HSTS ir saugos antraštės Jūsų svetainei.
- Prisijungimo puslapį apribokite tik savo IP adresu pagal WordPress wp-login.php apsauga.
- Dviejų veiksnių autentifikavimas administratoriams: žr. Dviejų veiksnių autentifikavimo nustatymas WordPress.
WordPress versijos slėpimas yra tvarkymas, o ne apsauga: atakų programos tiesiog išbando spragą. Spragą užtaiso tik atnaujinimas.
O kaip dėl saugos įskiepio?
Saugos įskiepis dažnai apjungia ugniasienę, skenerį ir prisijungimo apsaugą. Įskiepio ugniasienė pradeda veikti tik tada, kai WordPress jau paleistas; serverio ugniasienė užklausas sustabdo anksčiau. Todėl įskiepis yra papildymas, ypač dviejų veiksnių autentifikavimui ir prisijungimo bandymų ribojimui. Naudokite ne daugiau kaip vieną: du saugos įskiepiai kartu dažnai konfliktuoja.
.htaccess arba wp-config.php faile gali sustabdyti visą svetainę. Žr. Klaida 500 arba „kritinė klaida“ Jūsų svetainėje (taip pat po WordPress atnaujinimo).Daugiau informacijos
- Hardening WordPress (developer.wordpress.org, anglų kalba)
Norite sužinoti daugiau? Išklausykite nemokamą WordPress kursą, pamoka 7.4 Svetainės sustiprinimas: teisės, antraštės ir saugos įskiepiai.
