HTTP ответное разделение - PullRequest
       13

HTTP ответное разделение

1 голос
/ 03 октября 2008

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

Ответы [ 3 ]

1 голос
/ 03 октября 2008

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

Общее решение состоит в том, чтобы 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 и проверки на наличие таких дыр в безопасности перед развертыванием приложения.

0 голосов
/ 03 октября 2008

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

0 голосов
/ 03 октября 2008

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

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


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

...