Защита сайта от взломов

Опубликовано: 11 Фев 2015

Подсмотрела тут.

На этапе инсталляции системы

1) Обязательно меняйте префиксы таблиц базы данных, это создаст проблем хакеру использующему SQLi.
По умолчанию при установке MODX префикс указан: modx_ - меняйте его на что-нибудь персональное, например:

revo_
mmm_
sd_
cmf_

Потому, что когда через слабозащищённые модули принимающие информацию вводимую пользователем вам будут пихать SQL инъекции, в первую очередь будут искать modx_users

2) Переопределяйте пути к папкам:

/manager/
/connectors/
/core/

Опция переопределения путей имеется в дистрибутиве MODX типа advanced, в traditional такой опции нет. Это именно те места, где хакеры будут искать уязвимые скрипты и будут стараться обращаться к ним напрямую. Большую опасность представляет даже не папка /manager/, а /connectors/.

На уже действующей системе

Можно закрыть к разделам доступ по IP адресу, если вы заходите всё время только с определённых адресов. Это серьёзно усилит вашу оборону.
Содержимое файла .htaccess.

RewriteEngine Off
Order deny,allow
deny from all
Allow from 159.198.14.84   

Соответственно будет защищено всё, что лежит в одной папке с этим файлом и глубже. Такой файлик можно спокойно класть в /manager/, /connectors/ и /core/. Разве что персонально для /core/ можно запретить прямое обращение к php файлам, добавив:

IndexIgnore */*
 <Files *.php>
Order Deny,Allow
Deny from all
</Files>

Но если Вы часто обращаетесь к админке своего сайта из разных мест, ездите с ноутбуком по клиентам, конференциям, то задачу можно усложнить. Давать доступ или по IP или по базовой аутентификации через .htpasswd

Для /manager/ и /connectors/

RewriteEngine Off
Order deny,allow
Deny from all
AuthName "htaccess password prompt"
# здесь нужно указать абсолютный путь к файлу .htpasswd
# он вполне может быть общим для всех сайтов на одном хостинге
# файл .htpasswd нужно отдельно генерировать, об этом далее в статье
AuthUserFile /home/askapache.com/.htpasswd
AuthType Basic
Require valid-user
Allow from 127.0.0.1
Allow from 192.168.1.1
Satisfy Any

Для /core/

IndexIgnore */*
<Files *.php>
Order Deny,Allow
Deny from all
</Files>
Order deny,allow
Deny from all
AuthName "htaccess password prompt"
AuthUserFile /home/askapache.com/.htpasswd
AuthType Basic
Require valid-user
Allow from 127.0.0.1
Satisfy Any

Генерация htpasswd

Если у Вас есть ssh-доступ на сервер (доступ к командной строке сервера), то Вы можете воспользоваться утилитой htpasswd. Синтаксис команды таков:

htpasswd -c /full/path/.htpasswd имя_пользователя

После ввода команды будет запрошен пароль и просьба его повторить. В результате будет создан новый файл .htpasswd или же дополнен старый, содержащий логин и зашифрованный пароль. Если Вы хотите добавить новых пользователей, то следует запустить команду с ключом:

htpasswd -m .htpasswd имя_пользователя

В результате в существующий файл с паролями будет добавлена новая строка с именем пользователя и паролем.
Если у Вас нет доступа по ssh, а вероятно только по ftp, то для генерации файла htpasswd можно воспользоваться любым онлайн генератором.

Общие советы

Изучите систему управления правами доступа MODX. Давайте контент-менеджерам прав ровно столько, сколько им нужно, не больше, со временем если понадобится - добавите.
И в принципе регулярно проверяйте журналы ошибок на предмет подозрительного и кто у вас там вообще на сайте админами числится, а то бывают случаи появляются админы с e-mail'ами типа: willfuckyourmodxrevolutionagain@gmail.com

Комментарии (2)

  1. Павел:
    12.11.2015г. в 11:28

    Полезная статья! попробую так сделать. В конце угар))

  2. Наталья:
    16.11.2015г. в 20:03

    Буду рада, если статья поможет:)


Оставить комментарий




Разрешённые теги: <b><i><br>Добавить новый комментарий: