Preskoči na sadržaj
Pustili smo novi sajt sa mnogo novih opcija — AI Builder uskoro
BeoHosting
BeoHosting
WordPress

WordPress bezbednosna podešavanja koja morate znati

BeoHosting Tim··12 min čitanja
WordPress bezbednosna podešavanja koja morate znati

Zašto je WordPress bezbednost kritična

najkorišćeniji CMS pokreće preko 43% svih sajtova na internetu, što ga čini najčešćom metom hakera. Svaki dan se desi oko 90.000 napada na WordPress sajtove. Hakeri koriste automatizovane alate koji skeniraju internet i traže sajtove sa poznatim ranjivostima - ne morate biti važna meta da biste bili napadnuti. Dovoljan je jedan zastareli plugin ili slaba lozinka.

Dobra vest je da većinu napada možete sprečiti primenom osnovnih bezbednosnih podešavanja. Ne trebate biti programer ili bezbednosni ekspert - potrebno je samo da pratite provere postupke iz ovog vodiča i primenite ih na vašem sajtu.

Zaštita wp-config.php fajla

wp-config.php je najvažniji fajl na vašem WordPress sajtu. Sadrži pristupne podatke za bazu podataka, bezbednosne ključeve, prefiks tabela i druge kritične konfiguracije. Ako napadač dobije pristup ovom fajlu, ima potpunu kontrolu nad vašim sajtom.

Premeštanje wp-config.php

WordPress automatski traži wp-config.php jedan direktorijum iznad web root-a. To znači da možete premestiti ovaj fajl iz public_html/ u direktorijum iznad, gde nije dostupan putem web browser-a. Ovo je jedna od najjednostavnijih ali najefikasnijih mera zaštite. Ako vaš hosting ne dozvoljava pristup direktorijumu iznad public_html, kontaktirajte cPanel podršku.

Bezbednosni ključevi i salt-ovi

wp-config.php sadrži 8 bezbednosnih ključeva (AUTH_KEY, SECURE_AUTH_KEY, LOGGED_IN_KEY, NONCE_KEY i njihovi SALT parovi) koji se koriste za šifrovanje kolačića i sesija. Ako su ovi ključevi podrazumevani ili prazni, sesije korisnika su ranjive. Generišite jedinstvene ključeve na WordPress.org Secret Key API stranici i zalepite ih u wp-config.php. Periodično menjajte ove ključeve - to će automatski odjaviti sve korisnike i invalidirati postojeće kolačiće.

Onemogućavanje uređivanja fajlova

WordPress ima ugrađen editor koji omogućava uređivanje PHP fajlova tema i plugina direktno iz admin panela. Ovo je ogroman bezbednosni rizik - ako napadač dobije pristup admin nalogu, može ubaciti maliciozni kod direktno kroz editor. Onemogućite ovo dodavanjem linije define('DISALLOW_FILE_EDIT', true); u wp-config.php. Ovo ne sprečava ažuriranja plugina i tema, samo onemogućava direktno uređivanje koda.

Debug mod u produkciji

Nikada ne ostavljajte WP_DEBUG uključen na produkcijskom sajtu. Debug mod prikazuje PHP greške i upozorenja posetiocima, što otkriva informacije o strukturi sajta, putanjama fajlova i verzijama softvera. Postavite define('WP_DEBUG', false); na produkcijskom sajtu. Ako trebate debug informacije, koristite define('WP_DEBUG_LOG', true); sa define('WP_DEBUG_DISPLAY', false); da se greške loguju u fajl umesto da se prikazuju posetiocima.

Fajl permisije

Pravilne fajl permisije su prva linija odbrane na server nivou. Pogrešne permisije dozvoljavaju napadačima da čitaju, menjaju ili izvršavaju fajlove na vašem serveru.

Preporučene permisije

WordPress preporučuje sledeće permisije: direktorijumi treba da budu 755 (vlasnik može da čita, piše i izvršava; grupa i ostali mogu da čitaju i izvršavaju), fajlovi treba da budu 644 (vlasnik može da čita i piše; grupa i ostali mogu samo da čitaju), wp-config.php treba da bude 640 ili 600 (samo vlasnik može da čita i piše). Nikada ne koristite 777 permisije - to znači da svako na serveru može da čita, piše i izvršava vaše fajlove.

Zaštita wp-includes direktorijuma

wp-includes direktorijum sadrži core WordPress fajlove koji nikada ne treba da budu direktno dostupni. Dodajte u .htaccess fajl u root direktorijumu pravilo koje blokira direktan pristup PHP fajlovima u wp-includes. Ovo sprečava napadače da izvršavaju core fajlove direktno, što je česta tehnika u napadima na WordPress.

Zaštita uploads direktorijuma

wp-content/uploads direktorijum je jedini direktorijum u koji WordPress mora da piše (za uploadovane slike, dokumente, itd.). Napadači često pokušavaju da uploaduju maliciozni PHP fajl maskiran kao sliku i zatim ga izvršavaju. Sprečite ovo dodavanjem .htaccess pravila u uploads direktorijum koje zabranjuje izvršavanje PHP fajlova. Ovo znači da čak i ako napadač uspešno uploaduje PHP fajl, server ga neće izvršiti.

Onemogućavanje XML-RPC

XML-RPC (xmlrpc.php) je stariji protokol koji omogućava eksternim aplikacijama da komuniciraju sa WordPress-om. Bio je koristan pre REST API-ja, ali danas predstavlja značajan bezbednosni rizik.

Zašto je XML-RPC opasan

XML-RPC se koristi za dva tipa napada: brute force napade (napadač može da testira stotine lozinki u jednom XML-RPC zahtevu koristeći system.multicall metod, zaobilazeći rate limiting na login stranici) i DDoS napade (pingback funkcionalnost može se zloupotrebiti za amplifikacione DDoS napade gde vaš sajt postaje deo botnet-a). Većina modernih WordPress funkcionalnosti (mobilna aplikacija, Jetpack) koristi REST API umesto XML-RPC.

Kako onemogućiti XML-RPC

Najjednostavniji način je dodavanje u .htaccess fajl pravila koje blokira pristup xmlrpc.php fajlu i vraća 403 Forbidden status. Alternativno, koristite filter u functions.php: add_filter('xmlrpc_enabled', '__return_false');. Ovo onemogućava XML-RPC funkcionalnost ali i dalje dozvoljava pristup fajlu (što znači da server i dalje procesira zahtev). Za potpunu blokadu, .htaccess metod je bolji.

Security header-i

HTTP security header-i su instrukcije koje server šalje browser-u da bi poboljšao bezbednost sajta. Implementacija ovih header-a ne zahteva promene u WordPress kodu - dodaju se u .htaccess ili nginx konfiguraciju.

Content-Security-Policy (CSP)

CSP header kontroliše koje resurse browser sme da učita na vašoj stranici. Ovo je najmoćnija zaštita od XSS (Cross-Site Scripting) napada jer sprečava izvršavanje neovlašćenog JavaScript koda. Počnite sa Content-Security-Policy-Report-Only header-om da testirate politiku bez blokiranja resursa, a zatim prebacite na enforcing mod. Za WordPress, CSP konfiguracija može biti kompleksna zbog inline skripti i eksternih resursa koje teme i plugini koriste.

X-Content-Type-Options

Header X-Content-Type-Options: nosniff sprečava browser da pogađa MIME tip fajla. Bez ovog header-a, napadač može da uploaduje maliciozni fajl sa pogrešnom ekstenzijom i browser će pokušati da ga izvrši na osnovu sadržaja umesto ekstenzije. Ovo je jednostavan header koji nema negativnih efekata - uvek ga uključite.

X-Frame-Options

Header X-Frame-Options: SAMEORIGIN sprečava učitavanje vašeg sajta unutar iframe-a na drugom sajtu. Ovo štiti od clickjacking napada gde napadač stavlja transparentni iframe vašeg sajta preko svog sajta da bi prevario korisnike da kliknu na nešto. SAMEORIGIN dozvoljava iframe-ove samo sa istog domena.

Strict-Transport-Security (HSTS)

HSTS header prisiljava browser da uvek koristi šifrovanu HTTPS konekciju ka vašem sajtu. Jednom kada browser primi HSTS header, automatski će preusmeravati sve HTTP zahteve na HTTPS bez kontaktiranja servera. Ovo štiti od SSL stripping napada. Koristite Strict-Transport-Security: max-age=31536000; includeSubDomains (1 godina). VAŽNO: Uključite HSTS tek nakon što ste sigurni da SSL ispravno radi na svim stranicama.

Referrer-Policy

Referrer-Policy kontroliše koliko informacija browser šalje u Referer header-u kada korisnik klikne na link. Referrer-Policy: strict-origin-when-cross-origin šalje pun URL za iste origin zahteve, samo origin za cross-origin HTTPS zahteve i ništa za HTTP zahteve. Ovo štiti privatnost korisnika i sprečava curenje URL parametara ka eksternim sajtovima.

Dodatna WordPress bezbednosna podešavanja

Promena login URL-a

Podrazumevani WordPress login URL je /wp-admin/ ili /wp-login.php, što svaki napadač zna. Promena login URL-a na nešto nestandardno (npr. /moj-pristup/) eliminiše većinu automatizovanih brute force napada jer botovi neće naći login stranicu. Koristite plugin poput WPS Hide Login za jednostavnu promenu bez modifikacije core fajlova.

Dvofaktorska autentifikacija (2FA)

2FA dodaje drugi sloj zaštite pored lozinke. Čak i ako napadač sazna vašu lozinku, ne može da pristupi nalogu bez drugog faktora (obično kod sa telefona). Koristite plugin poput Google Authenticator ili Wordfence Login Security za implementaciju 2FA za sve admin naloge. Ovo je jedna od najefikasnijih mera zaštite - eliminiše praktično sve brute force i credential stuffing napade.

Limitiranje pokušaja prijave

WordPress podrazumevano dozvoljava neograničen broj pokušaja prijave, što omogućava brute force napade. Koristite plugin poput Limit Login Attempts Reloaded koji blokira IP adresu nakon određenog broja neuspešnih pokušaja (preporučeno: 3-5 pokušaja). Kombinujte sa CAPTCHA-om na login formi za dodatnu zaštitu.

Redovno ažuriranje

Ovo je najvažnija bezbednosna mera od svih. 86% kompromitovanih WordPress sajtova koristi zastarelu verziju WordPress-a, teme ili plugina. Uključite automatska ažuriranja za minor WordPress verzije (bezbednosne zakrpe) i proveravajte ažuriranja plugina i tema barem jednom nedeljno. Obrišite neaktivne plugine i teme jer čak i deaktivirani plugin može imati ranjivost koja se može eksploatisati.

Zaključak

WordPress bezbednost nije jednokratan zadatak nego kontinuiran proces. Implementirajte podešavanja iz ovog vodiča jedno po jedno: zaštitite wp-config.php, postavite pravilne fajl permisije, onemogućite XML-RPC, dodajte security header-e, promenite login URL, omogućite 2FA i redovno ažurirajte sve. Svaka od ovih mera eliminše čitavu kategoriju napada. Na BeoHosting-u, naši hosting paketi dolaze sa unapred konfigurisanom server-side zaštitom uključujući ModSecurity WAF, automatske backup-e i malware skeniranje, ali server-side zaštita funkcioniše najbolje u kombinaciji sa pravilno podešenim WordPress-om.

BeoHosting Tim

10+ godina iskustva — Stručnjaci za web hosting i infrastrukturu

  • Web Hosting
  • WordPress Hosting
  • VPS
  • Dedicated Serveri
  • Domeni
  • SSL
  • cPanel
  • LiteSpeed
  • Linux administracija
  • DNS

Poslednje ažurirano: