Соблюдение стандартов безопасности сайта требуется только при разработке для зарубежного клиента, однако следование им является признаком хорошего тона разработчика. Когда берешь в руки какой-либо проект на доработку и видишь все его уязвимости изнутри, хочется спросить того веб-мастера, который его разрабатывал, думал ли он о том, что такой сайт могут взломать. В подавляющем большинстве случаев причиной взломов сайтов является низкая квалификация разработчика в вопросе безопасности.
Веб-проект OWASP разработал некоторый свод правил, которые указывают на основные уязвимости веб-приложений. Эти правила созданы на основании многолетней статистике. Некоторые из уязвимостей актуальны и неистребимы с момента основания Интернета. Далее приведен список самых важных уязвимостей.
- Недостаточная проверка параметров в HTTP-запросах. Отсутствие фильтрации или ее ненадлежащая организация может позволить злоумышленнику использовать произвольные параметры, которые приведут выполнению произвольного программного кода.
- Недостаточная аутентификация и авторизация. Веб-приложения, которые позволяют обойти систему идентификации пользователя, позволяют злоумышленнику получить доступ к закрытым разделам сайта.
- Уязвимости в приложениях с межсайтовыми запросами. Веб-разработка позволяет организовать междоменные запросы, для удобства обмена информацией между сайтами. При наличии уязвимостей в этом механизме хакер может получить доступ к личным данным пользователя, а иногда и ко всему приложению.
- Переполнение буфера. Заполнение буфера памяти приводит к нестабильной работе системы, в которой хакер может получить права доступа с высокими привилегиями.
- Недостаточная фильтрация параметров из внешних сайтов и приложений. Если передаваемые параметры с другого сайта будут изменены, то злоумышленнику удастся передать их на атакуемый сайт.
- Неправильная обработка ошибок. Вывод сообщений об ошибках и прочей отладочной информации, которая помогает разработчику при создании сайта, может стать причиной разглашения какой-либо важной информации о структуре приложения и программном обеспечении сервера. Исходя из полученной информации, злоумышленник может построить примерную схему работы приложения.
- Ошибки шифрования. Недостаточное шифрование или его отсутствие могут значительно облегчить жизнь злоумышленнику, пытающемуся взломать ваше приложение.
- Уязвимости систем удаленного доступа. Система удаленного управления приложением должна быть надлежаще защищена от попыток взлома, иначе она позволит получить полный доступ к системе.
- Неправильная конфигурация сервера. Некоторые настройки сервера могут значительно усложнить взлом сайта для злоумышленника, поэтому пренебрежение ими также может повлиять на безопасность.