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



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.
Использовать PHP? ;)
Согласно Википедии и PHP CHANGELOG, PHP имел защиту от него в PHP4 с 4.4.2 и PHP5 с 5.1.2.
Только просмотрел - но, это может помочь. Его примеры написаны на JSP.
хорошо, хорошо, что преобразование в int не очень полезно при чтении строк, также использование регулярного выражения в каждом действии, которое получает ввод из браузера, может быть беспорядочным, я ищу более надежное решение
>> Удалите CR и LF (и все другие опасные символы) << есть ли какая-нибудь утилита / библиотека OWASP для этого?