Tour de force

WooExpert Platinum WooCommerce partner - biggest elephant in the eCommerce room.
Mailchimp Partner Mailchimp partner - you know what’s the newest cutting edge customer experience solution? Great email subject!
Clutch logo Clutch - clients say we’re top dogs in eCommerce. Throw us that stick now.
WordPress Vip WordPress VIP - Enterprise hosting partner

WordPress i sigurnost (WP Security How-to guide on Croatian)

Ovaj vodič je pomoćni tekst vezan uz članak objavljen na Netokraciji – “Zašto su WordPress i ‘open source’ aplikacije odlično rješenje za državne online projekte”

Autentifikacija, autorizacija i role unutar WP projekta se trebaju jasno i jednoznačno definirati. Glavni administratorski račun omogućite samo za glavne programere, maksimalno njih dvoje ili troje. Vlasnici sadržaja ili osobe koje odobravaju sadržaj (popularno agilno: Product Owner) bi trebali dobiti rolu urednika (Editor), dok je osobama koje kreiraju sadržaj namijenjena rola autora ili suradnika (suradnik može pisati ali ne može objaviti svoj sadržaj). WordPress podržava i prilagođene role korisnika. One bi mogle biti potrebne pri produkciji većih medijskih portala (npr. fotografi koji imaju omogućen pristup knjižnici medijskih zapisa no ne mogu pristupiti člancima). Unutar državnih WP projekata radi otprilike 20 do 30 ljudi, a spomenute nativne role su dovoljne za određivanje prava pristupa svih korisnika.

Poanta ove točke je slijedeća – ograničavanjem administratorskog pristupa na dvoje ili troje ljudi smanjujete najveći prozor napada na WordPress – automatizirane robote (botove) koji se pokušavaju prijaviti na sustav kao glavni administrator te potajno preuzeti kontrolu nad cijelim web sjedištem. Radi se o igri velikih brojeva – na svijetu postoji više milijuna WordPress instalacija, a velika većina njih ostavlja default username “admin” za prijavu u administratorski dio web sjedišta. S time napadač treba pogoditi samo lozinku te dobiti potpunu kontrolu nad cijelim sadržajem.

Takvi dictionary brute-force napadi su automatizirani no lako ih se može spriječiti. Prvo i osnovno, promjenite default username iz “admin” u nešto smisleno tipa “IvicaKicmanovic”. Drugo, koristite generatore zaporki za kreiranje hashed lozinki. Treće, omogućite autentifikaciju u dva koraka ( 2FA ) nad administratorskim i uredničkim računima. WordPress također omogućava blokiranje prijave u sustav nakon neuspjelog trećeg pokušaja pa postavite i tu značajku kao četvrtu razinu zaštite od brute-force napada.

WordPress Sigurnost Priprema Shema 5

Osnovnu tehničku zaštitu na bazu podataka je lako postaviti. Prefiksacija MySQL tablica malim random znakovima (npr. mrz17zg_ posts ) će spriječiti trivijalne SQL injection napade jer napadač više ne zna standardni naziv jedne od tablica u bazi. Važna napomena: ovo je najosnovnija zaštita protiv SQL injectiona no otežat će napad “botova” koji čine 99% napada na WP instalacije.

Što se tiče sesija i kolačića (cookies), WordPress ih enkriptira pomoću tzv. “Saltova”. Ti sigurnosni ključevi se trebaju nanovo generirati za svaki portal koji radite, ali velika većina programera to zaboravlja. Ključeve možete generirati na slijedećoj adresi. Napredniju tehničku zaštitu možete lako postaviti. Ovdje mislim na whitelist/blacklist IP adrese koje imaju pristup administratorskom sučelju, spajanje WordPressa na bazu poznatih napadača (blacklist offenders list) te vremensko ograničavanje pristupa administratorskom sučelju.

Održavanje projekta i proaktivna analiza WordPress verzije je dio sigurnosnih postavki oko kojih treba voditi najviše brige. Prve opisane točke nisu toliki operativni izazov ukoliko slijedite utabane sigurnosne koncepte, a dodatne “zdrave” aktivnosti bi trebale uključivati slijedeće radnje:

  • Svakodnevni backup svih datoteka i baza podataka na udaljeni enkriptirani server npr. CodeGuard
  • GIT revizija programskog koda uz cloud Git storage poput BitBucket-a
  • Kontinuirana nadogradnja WordPress “core” sustava i vanjskih plugin-ova na zadnje verzije. (Zgodan trik je da spojite RSS feed od samog plugina i WordPress core-a na Slack kanal od vaših programera (ili čak da pomoću Zapiera / IFTTT kreirate “taskove” nadogradnje čim autor objavi novu verziju plugin-a)
  • Automatizirani nadzor WP instalacije uz file change detection monitor. Odlične vanjske usluge koje možete koristiti za ove namjene su StatusCake, Rollbar i New Relic. Sa ta tri alata ćete u svakom trenutku znati što se dešava sa WP instalacijom, a s New Relic-om možete podesiti i prilagođene alarme ukoliko se infrastruktura krene ponašati izvan zadanih gabarita npr. RAM usage > 35% / CPU % utilization > 10%
Krešimir Končić
Krešimir Končić Owner at Neuralab

Ex QBASIC developer that ventured into a web world in 2007. Leading a team of like-minded Open Source aficionados that love design, code and a pinch of BBQ. Currently writing a book that explains why ‘coding is the easier part’ of our field.


Subscribe to our quarterly newsletter

Please fill in this field.
Please thick this field to proceed.

Related blog posts