Вопрос

Я пытаюсь справиться с этим возможным эксплойтом и задаюсь вопросом, как лучше всего это сделать?Должен ли я использовать общий валидатор Apache, создать список известных разрешенных символов и использовать его?

Это было полезно?

Решение

Из статья в Википедии:

Общее решение — URL-кодирование строк перед их включением в HTTP-заголовки, такие как Location или Set-Cookie.

Типичные примеры очистки включают приведение к целому числу или агрессивную замену регулярных выражений.Стоит отметить, что хотя это не проблема PHP, интерпретатор PHP содержит защиту от этой атаки, начиная с версий 4.4.2 и 5.1.2.

Редактировать

Я привязан к использованию jsp с действиями Java!

Похоже, что для этого вектора атаки не существует никакой защиты на основе JSP — во многих описаниях в Интернете предполагается asp или php, но эта ссылка описывает достаточно нейтральный к платформе способ решения проблемы (jsp используется в качестве второстепенного примера).

По сути, ваш первый шаг — идентифицировать потенциально опасные символы (CR, LF и т. д.), а затем удалить их.Боюсь, это самое надежное решение, на которое вы можете надеяться!

Решение

Подтвердите ввод.Удалите CR и LF (и все другие опасные символы) перед встраиванием данных в любые заголовки ответов HTTP, особенно при настройке файлов cookie и перенаправлении.Можно использовать продукты сторонних производителей для защиты от внедрения CR/LF и проверки наличия таких дыр в безопасности перед развертыванием приложения.

Другие советы

Использовать PHP ? ;)

Согласно Википедии и PHP CHANGELOG, PHP имеет защиту от него в PHP4 начиная с 4.4.2 и PHP5 начиная с 5.1.2.

<Ч>

Только просмотрел его, но это может помочь . Его примеры написаны в JSP.

хорошо, приведения к int не очень полезно при чтении строк, также использование регулярных выражений в каждом действии, которое получает ввод из браузера, может быть грязным, я ищу более надежное решение

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top