JBoss EAP 6.4.21 возвращает "400 Bad Request"
JBoss EAP 6.4.21 возвращает ответ "400 Bad Request" при отправке неэкранированных символов (необработанных символов, таких как |) в строке запроса и параметрах пути запроса.
Ниже настройка была опробована в <system-properties>
в домене.
<property name="-Dorg.apache.catalina.connector.URI_ENCODING" value="UTF-8"/>
<property name="-Dorg.apache.catalina.connector.USE_BODY_ENCODING_FOR_QUERY_STRING" value="true"/>
1 ответ
Согласно вашей версии JBoss и Официального сайта RedHat:
Исправление для CVE-2016-6816 обеспечивает более строгое соблюдение правил при обработке недопустимых символов в HTTP-запросах.
В результате любые клиенты, отправляющие запросы, содержащие любой из следующих символов ASCII, получат 400:
- Управляющие символы (значения от 0x01 до 0x1f и 0x7f)
- 8-битные значения ASCII (значения> 0x7f)
- Любой из следующих символов: ' ' (пробел) '' '(двойная кавычка) '#' (хеш или фунт)' <'(меньше чем)'> '(больше чем) '\' (обратная косая черта) '^' (circleflex) '`' (обратная кавычка) '{' (левая волнистая скобка или скобка) '|' (вертикальная черта) '}' (правая волнистая скобка или скобка)
В итоге:
Для вашей версии jboss вы должны добавить эту строку в ваш скрипт запуска standalone.sh
JAVA_OPTS="$JAVA_OPTS -Dtomcat.util.http.parser.HttpParser.requestTargetAllow='{|}'"
Помните, что если вы обновитесь до версии 7.1.1+, это решение не будет работать. Вместо этого добавьте эту строку в standalone.conf
файл:
JAVA_OPTS="$JAVA_OPTS -Dorg.wildfly.undertow.ALLOW_UNESCAPED_CHARACTERS_IN_URL=true"
Я надеюсь это тебе поможет.