Всеки използващ Joomla софтуер за изработка на сайт е срещал трудност след хакване на сайта си.

Тук ще опиша някой от най важните защити които трябва да направите на вашия сайт преди да го пуснете онлайн.

Като начало всеки свободен софтуер е бил компроментиран по един или друг начин. В случая Joomla е един от най-разпространените безплатни софтуери за изработка на уеб решения и разбирасе това повлиява на хакерите да го атакуват по различни начини.

Голяма част от атаките идват от грешки в кода на системата, лошо написани модули и SQL инжекция. За съжаление голяма част от хората използващи този софтуер могат да качват информация, но не знаят как да се защитят от подбни набези.

Първото нещо което трябва да направите е да се уверите, че използвате последна стабилна версия на софтуера. Това до голяма степен ще Ви донесе облекчение, тъй като са коригирани грешките от предходните версии. Ако не можете да преминете на по-висока версия е хубаво да прегледате какви пачове има за вашата версия и да ги приложите. Тази информация можете да намерите във форума на официалния сайт или да се допитате до българския форум на Joomla.

http://forum.joomla.org/ - Официален форум на Joomla
http://forum.joomla-bg.com/ - Oфициален форум на Joomla България

Друго което трябва да проверите и да премахнете е всички теми и модули които не ползвате на системата.

Ако сте изпълнили тези стъпки ще намалите опита за хакване на вашия сайт.

Ето и някой от основните стъпки които трябва да извършите.

1. Модул ModSecurity

Всеки качествен хостинг доставчик трябва да има включен модул ModSecurity. Tова е модул на Apache, който функционира като вгражда защитна стена уеб приложението. По този начин осигурява защита от различни атаки срещу уеб приложението и дава възможност за наблюдение на HTTP връзките и анализ в реално време.

Имайте в предвид, че модула работи с чисто инсталирана Joomla, но е възможно да не работи с модули писани от трети лица.

В някой случаи се налага да бъде изключен този модул за да може сайта Ви да работи нормално.

Ако нямате включен се допитайте до вашия хостинг доставчик дали има включен този модул за вашия акаунт.

2. Права на директории

Необходимо е да поддържате вашите директории с определени права за да не могат да бъдат четени от трети лица.

Ето и какви трябва да бъдат те:

**find . -type f -exec chmod 644 {} ;**

**find . -type d -exec chmod 755 {} ;**

**chmod 707 images**

**chmod 707 images/stories**

**chown user:user cache/**

В голяма част от случаите ако при инсталация на нов модул Ви подаде грешка е необходимо да върнете старите права за да можете да направите инсталацията.

Тези промените можете да направите и от - Site -> Global Configuration -> Server.

3. Ограничаване на достъп до файлове

Можете да ограничите достъпа до важните файлове на вашия акаунт посредством .htaccess файл.

Ето и как можете да направите това:

<FilesMatch "configuration.php">

Order allow,deny

Deny from all

</FilesMatch>

По този начин защитавате видовете разширения на файловете

<FilesMatch ".(htaccess|htpasswd|ini|phps|log|sh|conf)$">

Order allow,deny

Deny from all

</FilesMatch>

При този вариант ако някой направи опит да достъпи папк template ще бъде препратен към index.php (главната Ви страница)

RewriteRule ^template /index.php [L]

В случай, че не желаете да се препраща към нея можете да използвате този вариант където ще Ви препрати към грешка 403 Not found.

RewriteRule ^template - [F]

4. Достъп до администрацията на Joomla

За по сигурен и затруднение на атакуващия е желателно да ограничите достъпа до администрацията на Joomla. Можете да чрез cPanel или по начина описан по долу.

Създавате .htaccess файл в папка administrator.

/home/user/public_html/administrator/.htaccess

В него залагате следната информация:

AuthUserFile /home/user/auth/.htpasswd

AuthGroupFile /dev/null

AuthName "Password Protected Area"

AuthType Basic



<limit GET POST>

require valid-user

</limit>

След което създавате файл .htpasswd

/home/user/auth/.htpasswd

Можете да използвате .htaccess генератор на следния адрес - http://www.webmaster-toolkit.com/htaccess-generator.shtml

5. Защита на директори с права 0777

Както знаете има директории в Joomla които изискват високи права. За да защитите тази директория от файлове които могат да се изпълнят е достатъчно да създадете .htaccess файл със следното съдържание.

# secure directory by disabling script execution

AddHandler cgi-script .php .pl .py .jsp .asp .htm .shtml .sh .cgi

Options -ExecCGI

Също така можете да забраните и някой функции за изпълнение като добавите следния ред във вашия php.ini файл.

disable_functions = show_source, system, shell_exec, passthru, exec, phpinfo, popen, proc_open

За да направите php.ini файла глобален за всички папки и подпапки използвайте следната променлива във вашия .htaccess файл който се намира в главната директория на акаунта Ви.

Неговото съдържание трябва да бъде:

<IfModule mod_env.c>

SetEnv PHPRC /home/user/public_html/php.ini

</IfModule>

Като на адреса до php.ini файла трябва да бъде пълен - /home/user/public_html/php.ini

Други полезни методи за защита можете да намерите на следния адрес:

http://docs.joomla.org/Htaccessexamples(security)

Надявам се предоставената информация да Ви бъде от полза при изграждането на сайт чрез Joomla CMS.

Можете да намерите повече информация за защита на сайтовете си на следните адреси:

[http://docs.joomla.org/SecurityandPerformanceFAQs](http://docs.joomla.org/SecurityandPerformanceFAQs "Joomla Security") - Joomla Security документация

[http://docs.joomla.org/Category:SecurityChecklist](http://docs.joomla.org/Category:SecurityChecklist "Joomla Doc") - Joomla документация

http://forum.joomla.org/viewforum.php?f=432 - Форум с инфорамация за защита след хакване на Joomla

http://developer.joomla.org/security/news/ - Можете да следите последните пачове за Joomla