Делюсь используемыми мной методами, которые считаю актуальными в работе любого вебмастера, переживающего за безопасность клиентских проектов.
- Подключение к сайту SSL-сертификата с обязательным редиректом на защищённое соединение в системном файле .htaccess:⠀
RewriteCond %{HTTP:X-Forwarded-Protocol} !=https
На хостинге Jino, на котором я работаю, есть специальная настройка для подключения сайта только по SSL-сертификату, и это очень удобно, потому что с некоторых пор не нужно заморачиваться с .htaccess. В последующих публикациях разберу нюансы подключения SSL-сертификата сайта на WordPress.
- Никогда не сохранять пароль к хостингу в браузере. Я работаю на Jino и всегда использую специальное приложение от хостинга для входа по QR-коду.
- Использование по возможности защищенного SFTP-соединения с хостингом
- Включение FTP-доступа к аккаунту на хостинге только при необходимости
- При доступе к хостингу по FTP сохранение паролей только на время сессии
- Внедрение в каждый клиентский проект дополнительного системного файла .ftpaccess, ограничивающего доступ по FTP до одного IP-адреса. При каждом новом соединении я заново узнаю свой IP, который прописываю в файле на хостинге, и только затем могу соединиться с проектом для экспорта/импорта. Таким образом, даже если вдруг Вы забыли отключить доступ на уровне хостинга, враг не пройдет на уровне проектов. Пример директивы:⠀
Allow from 35.158.99.112 Deny from all
- Отдельного внимания заслуживает анализ безопасности используемой в проекте CMS. К примеру, весьма наслышана о проценте взламывания популярной WordPress. Думаю, дыры в безопасности имеет любая CMS, важен тот факт, насколько плотно ими озабочены разработчики. Если безопасность проекта в приоритете, стоит рассмотреть платные решения, например, Bitrix.
- Что касается WordPress, то в обязательном порядке необходимо скрывать стандартную страницу авторизации с помощью специальных плагинов, к примеру, Change wp-admin login
- Обязательное использование сложных логинов и паролей с генерацией с помощью специальных онлайн-сервисов, я, например, использую, вот такой генератор. При этом логин формирую порядка 30 символов, пароль – 50-70 символов, то бишь сложный. Для WordPress также актуально запретить вход по электронной почте, только если это не специально созданный для подобных целей корявый email. Для решения использовала возможности плагина Code Snippets. Ну и само собой, ни о каких логинах и паролях типа “admin”, “12345” речи быть не может.
- Отдельной строкой можно выделить безопасность баз данных, к примеру, использование отличных от стандартных для той или иной CMS префиксов таблиц.
- Безопасность на уровне сервера обеспечивается включением настройки open_basedir в параметрах конфигурации, которая ограничивает выполнение вредоносных скриптов папкой сайта (чаще всего предустановлена на хостинге по умолчанию). В ином случае могут быть заражены все файлы на хостинге.
- Наличие антивируса на хостинге, регулярная проверка файлов. Бывает, что антивирус есть, но запускается только вручную, или за дополнительную плату.
- Регулярный BackUp сайтов и баз данных. Реально обеспечить посредством выбора правильного хостера. К примеру, я более 10-ти лет работаю с Jino, где бекапы файлов и баз данных создаются автоматически, и при нарушении работы сайт вполне реально быстро восстановить. Собственно, за столько лет работы ни разу не возникало нареканий.
- Подключение сайта к https://www.cloudflare.com для защиты хакерских и DDoS-атак (можно потерять часть трафика).
Если было полезно, вы можете отблагодарить меня подпиской на мой канал https://t.me/ennhomenko, в котором я делюсь опытом вебмастера, а также отвечаю новыми публикациями на вопросы в комментариях