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:

  1. Управляющие символы (значения от 0x01 до 0x1f и 0x7f)
  2. 8-битные значения ASCII (значения> 0x7f)
  3. Любой из следующих символов: ' ' (пробел) '' '(двойная кавычка) '#' (хеш или фунт)' <'(меньше чем)'> '(больше чем) '\' (обратная косая черта) '^' (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"

Я надеюсь это тебе поможет.

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