Бортовой журнал Ктулху

Как обезопасить свой сайт

Несколько простых правил которые отсекают большую часть угроз таких как несанкционированный доступ, заражение вирусами и прочее. Конечно, абсолютной гарантии дать не может никто, все что сделано руками человека может быть сломано руками человека.

 

 

Права на папки и файлы (устанавливаются сразу после распаковки архива веб-сайта на хостинг):
все папки: 755

для папок кэша, медиа, бэкапа: 777 (все могут создавать и изменять файлы);

все файлы: 644;

для файлов-конфигураций: 444 (все могут только читать);

для файлов-баз-данных: 666 (все могут читать и изменять);

Пример выполнения команды chmod из под root-пользователя в консоли хостинга (например, через putty) для установки прав 755 на все вложенные папки в директории www и все её подпапки:

chmod -R go=rX,u=rwX /home/www

Настройка фильтрации опасных запросов со стороны веб-сервера


Добавляем следующий код в начало файла .htaccess в корневой web-директории (веб-сервер Apache):

ServerSignature Off
RewriteCond %{REQUEST_METHOD} ^(HEAD|TRACE|DELETE|TRACK) [NC,OR]
RewriteCond %{THE_REQUEST} (\\r|\\n|%0A|%0D) [NC,OR]
RewriteCond %{HTTP_REFERER} (<|>|’|%0A|%0D|%27|%3C|%3E|) [NC,OR]
RewriteCond %{HTTP_COOKIE} (<|>|’|%0A|%0D|%27|%3C|%3E|) [NC,OR]
RewriteCond %{REQUEST_URI} ^/(,|;|:|<|>|”>|”<|/|\\\.\.\\).{0,9999} [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^$ [OR]
RewriteCond %{HTTP_USER_AGENT} ^(java|curl|wget) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} (winhttp|HTTrack|clshttp|archiver|loader|email|harvest|extract|grab|miner) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} (libwww-perl|curl|wget|python|nikto|scan) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ({|}|<|>|’|%0A|%0D|%27|%3C|%3E|) [NC,OR]
#Block mySQL injects
RewriteCond %{QUERY_STRING} (;|<|>|’|”|\)|%0A|%0D|%22|%27|%3C|%3E|).*(/\*|union|select|insert|cast|set|declare|drop|update|md5|benchmark) [NC,OR]
RewriteCond %{QUERY_STRING} \.\./\.\. [OR]
RewriteCond %{QUERY_STRING} (localhost|loopback|127\.0\.0\.1) [NC,OR]
RewriteCond %{QUERY_STRING} \.[a-z0-9] [NC,OR]
RewriteCond %{QUERY_STRING} (<|>|’|%0A|%0D|%27|%3C|%3E|) [NC]
# Note: The final RewriteCond must NOT use the [OR] flag.
# Return 403 Forbidden error.
RewriteRule .* index.php [F]

Настраиваем доступ к админ-панели только с доверенных IP-адресов

Можно указать или полный адрес, или подсеть (не забыв точку в конце!), или DNS-имя хоста.
Добавляем следующий код в начало файла .htaccess в директории Admin-панели (веб-сервер Apache) и заменяем нужную запись на свой IP/хост (# - символ комментария):

deny from all
allow from XXX.XXX.XXX.XXX
#allow from YYY.YYY.YYY.
#allow from host.domain.com

Резервное копирование

Не забывайте создавать резервную копию сразу после настройки нового сайта, а также настроить систему автоматического создания резервных копий на хостинге в определенную папку (не внутри www-root, а вне её!) и периодически синхронизируйте содержимое этой папки с хостинга к себе в локальное хранилище (на диск ПК, USB-флешку и т.д.).

Логи

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

Отсюда

Еще интересное чтиво https://www.opennet.ru/base/dev/php4unix.txt.html