Заштита сајтова базираних на Вордпресу
Вордпрес је тренутно једна од најзаступљенијих платформи за блогове и сајтове како персоналне тако и комерцијалне, те је самим тим и веома занимљив хакерима који би да своје знање искале на вашем сајту, те ћу са вама поделити пар трикова за повећање безбедности истих.
…исто напомињем да идеална заштита не постоји те да се увек отварају рупе за упаде не само на персоналним сајтовима већ и на сајтовима великих компанија попут Сонија, Твитера и сличних.
Read-only привилегије где год је то могуће
Сви фајлови и фолдери сем оних који се констатно мењају ставити на READ-ONLY мод, односно на такозвани chmod 444 сем оних који садрзе поверљиве информације попут wp_config.php. Том фајлу видљивост смањити на 400, односно да буде видљив само вама као кориснику (бачите поглед, можда вам после ове пермисије неће радити сајт, а ако се то десити дати му привилегију 440). Такође привилегије на 400 треба спустити и фајловима readme.html, licence.txt, xmlrpc.php и wp_admin/install.php
По дифолту је постављено да се у сви фајлови могу мењати од стране корисника, те ако је тај корисник ухакован неко ће лако да модификује сам фајл. Ово са собом носи један проблемчић, а то је тај да ћете ово морати радити сваки пут када радите ажурирање Вордпреса, који ћете морати да радите ручно, односно, мораћете сами себи дати привилегије да можете да мењате фајлове, па онда да бришете фолдере wp-admin и wp-include као и фајлове који се налазе на root-у.
Вордпрес фајл едитор
Онемогућити фајл едитор унутар Вордпреса те тиме забранити ономе ко се улоговао да може да мења иста од wp или плагин фајлова директно кроз панел. У принципу, ово је већ онемогућено ако сте одрадили ово под ставком 1, али нека га, не једе леба.
Ово се ради тако што ћете у ваш wp-config фајл додати две линије:
define( 'DISALLOW_FILE_EDIT', true ); define( 'DISALLOW_FILE_MODS', true );
Скривање локације за логовање
Под тим мислим да стандардни www.mojsajt.com/wp-admin замените са www.mojsajt.com/milance_radosavljevic_je_car. Џаба некоме ко би насумичним гађањем лозинке (такозваном brute_force методом) провалио у нас налог, ако не зна ни где треба да иде да се улогује.
Ово је у принципу најлакше одрадити Вордпрес плугином који се зове „Rename wp-login.php“ или са неким од доле наведених плагинова.
Још једна од ствари коју морате знати јесте да вам се неко може ушуњати brute-force техником и путем xmlrpc.php фајла. Заштитите тај фајл у .htaccess фајлу.
рецимо код за тоталну забрану приступа том фајлу би био:
<FilesMatch "^(xmlrpc\.php)"> Order Deny,Allow Deny from all </FilesMatch>
Скривање архиве аутора и његовог корисничког имена
Зашто? Па ето тако, ако одете на урл вашег блога www.mojsajt.com/?author=1 у самом урлу сајта ће се видети ваше кориснићко име. Тиме сте открили половину ваших података.
Рецимо, примера ради, намом омиљеном сајту њуз.нет овом методом могу да установим да постоји корисник админ, jer www.njuz.net/?author=1 води на http://www.njuz.net/author/admin/
Истина јесте да се ваше корисничко име може наћи у коментарима, али ето, макар је мало отежано роботима да вас ухвате неспремне. Ово скривање ћете одрадити простим додавањем реда у ваш root .htaccess фајл (унутар rewrite мода):
RewriteRule ^author/(.*)$ http://www.nazivsajta.com/ [R,L]
Забрана шетања по фолдерима
Па не мора свако да види које све плaгинове имате инсталиране. Ово радите тако што у .htaccess фајл убаците и ред:
# directory browsing Options All -Indexes
Security додаци
Укратко, постоје тренутно 4 плугина која су кева кад је у питању безбедност Вордпрес сајта, али морате обратити пажњу јер и они су сами по себи мета, те треба с времена на време отићи на неки од сајтова попут exploit-db.com или 1337day.com и проверити да ли је неки од ових (или било којих других плагинова) постао небезбедан, те ако јесте прећи на следеци док се овај „не оправи“ 🙂
Такође, пре инсталације ових плагинова би било добро направити пун бекап базе и фајлова, јер се може десити да вам исти нешто прејебу на сајту, те уколико сте дибидус почетник биће вам тешко вратити се на почетно стање. Већини ових плагинова се све своди на изmenu .htaccess фајлова те и модификације самих WP фајлова.
Дакле плугинови које препоручујем су:
Wordfence Security
Better WP Security
BulletProofSecurity
All In One WP Security & Firewall
Већина од ових плагинова нуди и заштиту од brute-force напада, тако да ово нећу наводити као додатну заштиту.
Заштита .htaccess-ом фолдера wp-admin, wp-includes, wp-content и wp-uploads
Сувише је ово детаљна тематика тако да нећу о њој писати сад, пронађите привремено на Гуглу 🙂
Сем .htaccess фајла сваки од ових фолдера треба да има и један празан index.php фајл са read-only пермисијама (chmod 400)
Лимитирање привилегија DB корисника на MySQL бази
Укратко, DB корисник којим се качите на базу не треба да има пуне (full) привилегије, као што их сваки корисник и има по дифолту. Довољно је SELECT, INSERT, UPDATE, DELETE, ALTER, CREATE и ћао. Ово можете подесити кад се улогујете кроз cPanel на ваш phpМyАдмин.
Све што не користите од тема и плагинова – DELЕТЕ
Тo што сте их искључили не значи да је довољно. Довољно је само ако их обришете
Стандардна смарања о којима вас ја нећу смарати, али их се морате придржавати:
- Ултра-зајебана лозинка за cPanel, WP логин, DB корисника, FTP кориснике са минимум 3 велика, 3 мала слова, 3 броја, 3 специјална карактера.
- Редован бекап фајлова и базе на локални рачунар или неки клауд сервис попут Dropbox-a
- Скривање верзије Вордпреса
- Правилан одабир хостинг провајдера, по могућству узети хостинг на неком од највецих провајдера попут рецимо GoDaddy-ја
- Редовно ажурирање свих инсталираних плагинова, тема и самог Вордпреса на последњу издату верзију.
- Одјебаус префиксу wp_ кад су табеле у бази у питању
- Логовати се само са проверених и заштићених мрежа
- Праћење 404 грешака, како би видели легитимне али и сумњиве покушаје приступа сајту
- Заштита вама битних фолдера лозинком (може и преко Password Protect Directories унутар вашег cPanelа)
- CAPTCHA за логин и коментаре да вас спамери не би убили у мозак
Milan
11/03/2014 @ 21:04
Odličan tekst. Hvala.
Zoran
14/08/2017 @ 21:12
Slažem se.
Miodrag
27/04/2014 @ 20:10
Postovani,
wordpress je nedavno poceo automatski da apdejtuje svoje verzije. Da li ce wordpress biti u mogucnosti da se nesmetano automatski apdejtuje ako zastitim wp-admin folder dodatnom sifrom u cpanelu.
Unapred hvala na odgovoru,
Miodrag
Компјутераш блог
28/04/2014 @ 19:19
NIsam probao. Pretpostavljam da neće raditi ali vas naravno ništa ne košta da probate (samo prvo backup svega)
Miodrag
14/06/2014 @ 16:45
Postovani Darko,
probao sam da zastitim dodatnom sifrom wp-admin folder kroz c-panel (Password Protect Directories u c-panel), sve sam to odradio bez problema, kreirao user-a, kliknuo na „Password protect this directory“, snimio sve, ali prilikom logovanja na sajt (…./wp-login.php) se ne desava nista (ne pojavljuje se prozor u koji bi trebalo da se unese korisnicko ime i lozinka za ulaz u wp-admin). Ne znam o cemu se radi.
Miodrag
Bratislav Grbic
22/09/2017 @ 11:13
Dobar članak. Ja sam takođe napisao tekst o zaštiti WordPress sajtova. Izabrao sam nešto drugačiji pristup. Možeš ga pogledati ovde:
http://mindstorming.ws/zastita-wordpress-sajta/
A sada vidim da sam izostavio neke stvari, na koje si ti obratio pažnju. U svakom slučaju, lepo je videti da se još neko bavi bezbednošću WP-a na ozbiljan način. pozzz