Разделение HTTP-ответа

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

Зод: сила проверки и преобразования данных
Зод: сила проверки и преобразования данных
Сегодня я хочу познакомить вас с библиотекой Zod и раскрыть некоторые ее особенности, например, возможности валидации и трансформации данных, а также...
Валидация полей ввода для базовой формы React
Валидация полей ввода для базовой формы React
В одном из моих проектов MERN Stack есть форма с именем, фамилией, контактным номером, адресом, электронной почтой, датой рождения, номером NIC, весом...
Пользовательские правила валидации в Laravel
Пользовательские правила валидации в Laravel
Если вы хотите создать свое собственное правило валидации, Laravel предоставляет возможность сделать это. Создайте правило с помощью следующей...
1
0
921
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

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

The generic solution is to URL-encode strings before inclusion into HTTP headers such as Location or Set-Cookie.

Typical examples of sanitization include casting to integer, or aggressive regular expression replacement. It is worth noting that although this is not a PHP specific problem, the PHP interpreter contains protection against this attack since version 4.4.2 and 5.1.2.

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

im tied into using jsp's with java actions!

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

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

Solution

Validate input. Remove CRs and LFs (and all other hazardous characters) before embedding data into any HTTP response headers, particularly when setting cookies and redirecting. It is possible to use third party products to defend against CR/LF injection, and to test for existence of such security holes before application deployment.

>> Удалите CR и LF (и все другие опасные символы) << есть ли какая-нибудь утилита / библиотека OWASP для этого?

yathirigan 17.11.2015 13:37

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

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


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

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

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