Заштита сајтова базираних на Вордпресу

Вордпрес је тренутно једна од најзаступљенијих платформи за блогове и сајтове како персоналне тако и комерцијалне, те је самим тим и веома занимљив хакерима који би да своје знање искале на вашем сајту, те ћу са вама поделити пар трикова за повећање безбедности истих.

Напомињем да нисам ултимативни вебмастер бог унивезума заштите и одбране и да сам и сам био мета хакерског напада и дифејсовању, додуше кривицом незаштићеног сервера код хостинг провајдера али ајд сад да не ситничаримо.

…исто напомињем да идеална заштита не постоји те да се увек отварају рупе за упаде не само на персоналним сајтовима већ и на сајтовима великих компанија попут Сонија, Твитера и сличних.

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 за логин и коментаре да вас спамери не би убили у мозак