Выполнение кода на сервере
-
Внедрение серверных расширений: также как и предыдущий класс атак является следствием плохой проверки данных, приходящих от клиента. Атака заключается во внедрении скриптов, отрабатывающих в контексте сервера, в том числе команд операционной системы. Например, это возможно, если на основе данных пользователя генерируется исполняемый на сервере код.
-
Внедрение SQL-операторов: при плохой проверке данных, приходящих в запросе и генерации на их основе SQL-операторов, возникает возможность модифицировать запрос к серверу баз данных. Запрос будет выполнен с уровнем привилегий работающего приложения. Результат успешной атаки может быть впечатляющим — вплоть до получения контроля над сервером СУБД и его операционной системой. Например, оператор "SELECT username FROM USERS WHERE password = '" + password + "'", при передаче password равным «' or 1='1», запрос возвращает список всех пользователей. Для борьбы с SQL-инъекциями следует экранировать специальные символы в пользовательских данных (обычно в SQL-операторах перед апострофом ставится слеш, например, «\'»). В Java для экранирования следует использовать класс PreparedStatement. В PHP следует использовать функции mysql_escape_string, mysql_real_escape_string, addslashes и т. п.
- Раздел 16. Многоуровневые и многослойные приложения. Шаблон проектирования Модель-Представление-Контроллер
- 16.1. Многоуровневые приложения
- 16.2. Многослойные приложения
- 16.3. Шаблон проектирования Модель-Представление-Контроллер
- 16.4. Реализация шаблона Модель-Представление-Контроллер в веб-приложениях
- Раздел 17. Базы данных в веб-приложениях
- 17.1. Основные понятия баз данных
- 17.2. Системы управления базами данных
- 17.3. Язык запросов sql
- Транзакции
- 17.4. Доступ к базам данных из Java
- Пример: база данных студентов
- Поддержка транзакций
- 17.5. Объектно-реляционная проекция
- Лекция 18. Безопасность Интернет-приложений
- 18.1. Аутентификация и авторизация
- 18.2. Понятие безопасности Интернет-приложений
- 18.3. Классы атак сетевого уровня Сниффинг пакетов
- Подмена ip-адреса
- Отказ в обслуживании
- Сетевая разведка
- 18.4. Криптографические технологии
- 18.5. Уязвимости уровня приложений
- Уязвимости системы аутентификации
- Уязвимости системы авторизации
- Атаки на стороне клиента
- Выполнение кода на сервере
- Разглашение информации
- Злоупотребление функциональными возможностями
- Наиболее распространенные уязвимости
- 18.6. Резюме