Как защитить сайт от взлома на Joomla

Решил опубликовать полезную статейку о защите Joomla

Измените установленный по умолчанию префикс (jos_) к таблицам в базе данных
Большинство SQL инъекций, которые написаны для взлома сайтов на Joomla! пытаются получить данные из таблицы jos_users. Таким образом, они могут получить имя пользователя и пароль для супер администратора сайта. Изменение стандартного префикса оградит вас от (большинства / всех) SQL инъекций.

Вы можете задать префикс базы данных при установке Joomla! Если вы уже установили и хотите изменить свой префикс, выполните следующие действия:

  • Войдите в панель управления Joomla!
  • Зайдите в «Общие настройки»->«Сервер» и найдите панель «Установки базы данных».
  • Там измените ваш префикс на любой произвольный (например: fdasqw_) и нажмите кнопку Сохранить.
    *Когда вы это сделаете, сайт на время выйдет и строя, но следующее действие исправит это.
  • Зайдите в PhpMyAdmin для доступа к базе данных.
  • Перейдите на вкладку экспорт, оставить все значения по умолчанию и нажмите кнопку «Пуск/Пошел». Экспорт данных может занять некоторое время.
  • Когда все будет сделано, выделите весь код и скопируйте его в блокнот (или любой другой текстовый редактор), на всякий случай сохраните файл.
  • В PhpMyAdmin выберите все таблицы, и удалите их. Обязательно убедитесь, что вы сохранили экспортированный до этого код, иначе потеряете данные сайта!
  • В редакторе, выполните поиск и замену (как правило, Ctrl + H). Сделайте поиск по jos_ и измените его на ваш новый префикс (например: fdasqw_). Нажмите «Заменить все».
  • Выберите все в редакторе и скопируйте. В PhpMyAdmin, перейдите на SQL, вставьте запросы (то, что вы скопировали в редакторе) и нажмите кнопку Пуск.

Удалите номера версий / название расширений
Большинство уязвимостей проявляются только в конкретном выпуске конкретных расширений. Показывать номер версии расширения это действительно плохо. Вы можете сократить такие сообщения только до названия расширения, выполнив следующие действия:

  • Скачайте нужные файлы расширений с вашего сервера.
  • Откройте редактор кода.
  • Откройте любой из файлов расширений, которые вы только что загрузили на ваш компьютере.
  • И начните поиск необходимого вам словосочетания, где указана версия расширения. Если вы не знаете в каком конкретно файле искать, то можно воспользоваться поиском по всему каталогу расширений.
  • Установите параметры поиска по словосочетанию «Версия мое расширения 2.14»(Это для примера) и нажмите «ОК».
  • Когда найден искомый запрос, удалите номер версии.
  • Загрузка измененный файл на сервер и убедиться, что были внесены изменения.

Используйте SEF компоненты
Большинство хакеров используют «Google inurl: команду» для поиска уязвимостей для эксплойтов. Используйте Artio, SH404SEF или другой компонент SEF для того, чтобы переписать ссылки и помешать хакерам найти возможность эксплойта. Кроме того, вы получите более высокий ранг в Google при использовании дружественных URL для поисковика. (я бы рекомендовал для этих целей использовать стандартный SEF Joomla с mod_rewrite — прим.Sulpher)
Используйте самые свежие версии Joomla! и расширений
Это очевидно. Всегда проверяйте наличие обновлений для Joomla! и расширений, которые вы используете. Многие уязвимости в большинстве случаев устраняются в более поздних версиях.
Используйте правильный CHMOD для каждой папки и файла
Установка CHMOD 777 или 707 для файлов или папок необходима только тогда, когда скрипт должен записать что-либо в этот файл или каталог. Все остальные файлы должны иметь следующую конфигурацию:
* PHP-файлы: 644
* Файлы конфигурации: 666
* Другие папки: 755
Удаляйте остатки файлов
Когда вы установили расширение, которое вам не понравилось, не оставляйте расширение просто неопубликованным. Если вы так сделаете, уязвимые файлы будут по-прежнему на вашем сайте. Поэтому просто воспользуйтесь деинсталлятором для полного удаления расширения.

Измените ваш .htaccess файл
Добавьте следующие строки в .htaccess файл, чтобы заблокировать некоторые основные эксплойты.

########## Начинаем запись правил чтобы заблокировать основные эксплойты
#
# Блокируем любой скрипт пытающийся получить значение mosConfig через URL
RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|%3D) [OR]
# Блокируем любой скрипт пытающийся отправить любое дерьмо чере base64_encode по URL
RewriteCond %{QUERY_STRING} base64_encode.*(.*) [OR]
# Блокируем любой скрипт который содержит тег < script> в URL
RewriteCond %{QUERY_STRING} (<|%3C).*script.*(>|%3E) [NC,OR]
# Блокируем любой скрипт, который пытается установить глобальную переменную PHP через URL
RewriteCond %{QUERY_STRING} GLOBALS(=|[|%[0-9A-Z]{0,2}) [OR]
# Блокируем любой скрипт пытающийся изменить _REQUEST переменную через URL
RewriteCond %{QUERY_STRING} _REQUEST(=|[|%[0-9A-Z]{0,2}) [OR]
# Блокируем любой скрипт, который пытается установить CONFIG_EXT (баг в com_extcal2)
RewriteCond %{QUERY_STRING} CONFIG_EXT([|%20|%5B).*= [NC,OR]
# Блокируем любой скрипт, который пытается установить sbp or sb_authorname чере URL (баг simpleboard)
RewriteCond %{QUERY_STRING} sbp(=|%20|%3D) [OR]
RewriteCond %{QUERY_STRING} sb_authorname(=|%20|%3D)
# Отправляем все заблокированный запросы на главную с ошибкой 403 Forbidden!
RewriteRule ^(.*)$ index.php [F,L]
#
########## Заканчиваем запись правил чтобы заблокировать основные эксплойты
(оригинал http://joomlaforum.ru/index.php/topic,95611.0.html)
Запись опубликована в рубрике Joomla, Безопасность с метками , . Добавьте в закладки постоянную ссылку.

28 комментариев на «Как защитить сайт от взлома на Joomla»

  1. Nikolai25 говорит:

    у меня на сайте по умолчанию уже всё это есть только файл .htaccess переименован htaccess.txt Это правильно?

  2. Nikolai25 говорит:

    Извиняюсь. Забыл сказать спасибо!

  3. valll говорит:

    Спасибо большое

  4. valll говорит:

    с котами хорошо)))

  5. Артём говорит:

    Спасибо!

  6. Дмитрий говорит:

    Nikolai25, не правильно, так как он должен выглядеть именно вот так .htaccess

  7. Владимир говорит:

    вставил себе код в htacess
    сайт потух ошибка 500 🙂

  8. megallodon говорит:

    вставил себе код в htacess
    сайт потух ошибка 500

    Если сайт потух значит какойта код косячит,нужно просто по чоереди закоментирвать каждую строку и поверить таким образом что строка гасит сайт
    Автору спасибо,полезная статья

  9. admin говорит:

    незачто, рад помочь, а если сайт потух то првильно вам говорят что надо проверять строки, быть может какие то конфликты с компонентами, либо перемудрили с CHMOD

  10. Степан говорит:

    Мне хакеры постоянно взламывали сайт, суки, а когда я поменял стандартный префикс jos_ и добавил в .htaccess строки, которые прописал автор, то с тех пор сайт не взламывался! Так что спасибо автору статьи!
    Лично у меня проблемы возникли вот с этой строкой:

    # Блокируем любой скрипт, который пытается установить CONFIG_EXT (баг в com_extcal2)
    RewriteCond %{QUERY_STRING} CONFIG_EXT([|%20|%5B).*= [NC,OR]

    Когда я её удалил, всё заработало. И спасибо кто там писал за коммент:
    Если сайт потух значит какойта код косячит,нужно просто по чоереди закоментирвать каждую строку и поверить таким образом что строка гасит сайт

  11. admin говорит:

    Степан ВСЕГДА при установке новой джумлы надо менять префикс, это прям на автомате должно быть))

  12. Prikol говорит:

    Большое спасибо!!!!!!

  13. Дмитрий Андреевич говорит:

    Огромное спасибо.

  14. Sakhalin говорит:

    Sulpher молодца! Неоднократно выручает!

  15. admin говорит:

    всегда пожалуйста) если есть что то о чем хотели бы прочесть на страницах блога пишите)

  16. Олег говорит:

    У меня на сайте такая штука

    В админке пробывал исправить выдает «Возникла ошибка! Не могу открыть конфигурационный файл на запись!»
    CHMOD файла конфигурации 644.

  17. admin говорит:

    на время изменения конфигурации поставьте права 775 но не забудьте изменить обратно.

  18. Alisa говорит:

    У меня взломали сайт, я все содержимое удалила и залила поновой, а когда попыталась зайти в панель управления- меня не пустили…пишет «Имя пользователя и пароль не совпадают «Подскажите, пожалуйста, что делать?

    • admin говорит:

      во первых проверьте прописан ли адрес сайта в конфиге, в live_site во вторых.. попробуйте более ранние аккаунты.. мб в вашем бекапе еще старый пароль. Если это не помогло, то ищите в базе в таблице юзеров пароль админа и заменяйте содержимое на скопированное с другого сайта где пароль вам известен)

  19. /\/\!}{@ говорит:

    Огромное спасибо автору! Я начинающий и по этому вся инфа оч к стати!

  20. Владимир говорит:

    Большое (огромное) спасибо за статью.
    Но как быть с обновлениями на новые версии Joomla и её расширений?

  21. Сергей говорит:

    Продвижение сайта оплата за результат в короткие сроки.Все необходимые работы по раскрутке сайта в поисковиках: составление SEO текстов, оптимизация внутреннего кода, перелинковка страниц сайта и т.д. мы делаем бесплатно.

  22. Виктор говорит:

    ГК Гермес предлагает широкий выбор оригинальных и oem запасных частей со склада и под заказ из Европы,Америки и Японии.Запчасти на заказ New Holland.Доставка в регионы, услуги растаможивания,страхование груза, низкие цены

  23. Дмитрий говорит:

    Дизайн студия DK Сайт бесплатно.Предоставляем весь спектр услуг по проектированию,продвижению и сопровождению ресурсов в сети Интернет.В нашу специализацию входит:создание сайтов любой сложности,техническая поддержка и раскрутка .

  24. Петр говорит:

    Спасибо огроменное!

  25. Dj Tiesto говорит:

    попробьуем!!!

  26. Эконом говорит:

    Сам мучаюсь частыми взломами в последнее время. Вышеописанные способы не помогают к сожалению и не знаю что делать. Версию джумлы поменять не могу

  27. irinaNeps говорит:

    Пчелки, Пчелки, ура я люблю вас пчелки

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *