JBoss EAP 6.4.21 возвращает "400 Bad Request" - PullRequest
0 голосов
/ 12 февраля 2019

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 Ответ

0 голосов
/ 12 февраля 2019

В соответствии с вашей версией JBoss и Официальным сайтом RedHat :

Исправление для CVE-2016-6816 обеспечивает более строгие правила при обработке недопустимых символов в HTTP-запросах.

В результате любые клиенты, отправляющие запросы, содержащие любой из следующих символов ASCII, получат 400:

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

В итоге:

Для вашей версии jboss вы должны добавить этострока в вашем скрипте запуска standalone.sh

JAVA_OPTS="$JAVA_OPTS -Dtomcat.util.http.parser.HttpParser.requestTargetAllow='{|}'"

Помните, что если вы обновитесь до eap 7.1.1+, это решение не будет работать. Вместо этого добавьте эту строку в файл standalone.conf:

JAVA_OPTS="$JAVA_OPTS -Dorg.wildfly.undertow.ALLOW_UNESCAPED_CHARACTERS_IN_URL=true"

Надеюсь, это поможет вам.

...