Любую защиту можно обойти. Но встречаются такие сайты, которые сами себя компрометируют, — проверьте, не входит ли ваш в их число.
Любой сайт или сервер можно взломать. Всегда найдется тот, у кого будет достаточно знаний и времени. Вопрос в том, стоит ли взлом вашего сайта потраченных ресурсов.
Если защита хотя бы на среднем уровне, а сайт не относится к банку или правительственной структуре, то его обойдут стороной. Но если он так и кричит, что его можно расколоть как орех, — то будет привлекать злоумышленников.
Можно получить прямой доступ к компонентам сайта
Многие выносят подключение к базе данных, хэдер, футер, сайдбар, а также пользовательские функции в отдельные файлы — это позволяет подключить их в нужном месте и не переписывать один и тот же фрагмент кода сотни раз.
Однако если доступ к этим файлам не закрыть, пользователи смогут зайти на них и поэкспериментировать, чтобы найти лазейки. В крайне плачевных случаях эти компоненты даже получится скачать.
Чтобы обезопаситься, переместите в каталог с компонентами файл .htaccess, содержащий следующую строку:
Deny From All
Теперь их не получится открыть по прямой ссылке, но можно будет подключить через include().
Простой пароль к админке
Если панель администратора вашего сайта находится по адресу /admin.php, а пароль к ней 12345, — вас взломают. И даже если qwerty — взломают. И 12345qwerty тоже не спасет.
Но и более сложный пароль не поможет, если он у вас везде одинаковый. А даже если вы используете разные коды, кто-то может воспользоваться брутфорсом (перебором паролей) — от этого можно спастись, запретив проводить множество попыток входа с одного устройства на протяжении определенного времени.
Нет валидации
HTML5 подарил нам такие замечательные типы input, как email или number. И теперь пользователь не может отправить форму, если ввел некорректные данные.
Вам также будет интересно:
• «Современный разработчик учится всю жизнь».
• Веб-разработчик: чем занимается и как им стать.
• 4 способа, как подключить PHP-файл к программе.
Вот только остановит это разве что начинающих взломщиков, потому что с помощью панели разработчика (открывается при нажатии F12) можно изменить код страницы. Заменив email на text в атрибуте поля, хакер сможет без проблем отправить любое значение.
На стороне обработчика все данные должны несколько раз проверяться, иначе велик шанс, что взломщику удастся ввести SQL-инъекцию.
Используются сторонние скрипты и плагины
Если вы используете для сайта скрипты других разработчиков, будьте готовы, что в них будет бэкдор или обыкновенная уязвимость, которую ни вы, ни разработчик скрипта не заметите.
Это касается и тех, кто пользуется CMS, — плагины из непроверенных источников могут нанести вред сайту. А если вы скачиваете премиум-шаблон у пиратов, то риск увеличивается в несколько раз.
Доступна информация о сайте и сервере
Если вы направо и налево сообщаете, на каком языке написан сайт, какие таблицы в базе данных, каким хостингом или движком пользуетесь, то будьте готовы, что вас взломают.
Хакер может воспользоваться аналогичными решениями, чтобы найти в них уязвимости, — тогда взломщика ничего не остановит.
Включено отображение ошибок
Если после релиза сайта вы не отключили отображение ошибок, всем станет известно о ваших багах, а также о том, как их использовать, чтобы обойти защиту.
Поэтому, если появляется ошибка, лучше отлавливать ее и показывать пользователю произвольный текст, а сам рапорт заносить в логи.
Отправка форм методом GET
Отправленные методом GET данные можно без труда перехватить или изменить. В конце концов можно попытаться перегрузить обработчик, отправив множество запросов, превышающих допустимый лимит (4 кб).
Проверьте свой сайт на наличие этих простых, но опасных признаков. Если обнаружили хотя бы один — срочно исправляйте его! Также вы можете записаться на курс по PHP, на котором вас научат писать эффективный и безопасный код.
Курс «PHP-разработчик»
Обширная программа для изучения PHP, состоящая из четырех курсов. Поможет с нуля овладеть популярным языком программирования, устроиться в IT-компанию вашей мечты или стать независимым разработчиком.
Программа курса