JBoss EAP 6.4.21返回“ 400 Bad Request”

时间:2019-02-12 14:47:16

标签: jboss-eap-6 jboss-eap-7 jboss-web

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 :(得分:0)

根据您的JBoss版本和RedHat Official Site

  

在处理HTTP请求中的无效字符时,CVE-2016-6816的修复程序将更严格地执行规则。

     

任何请求包含以下ASCII字符的客户端将收到400:

     
      
  1. 控制字符(值0x01至0x1f和0x7f)
  2.   
  3. 8位ASCII值(值> 0x7f)
  4.   
  5. 以下任何字符:   ''(空格字符)   “”(双引号)   '#'(哈希或磅)   '<'(小于)   '>'(大于)   '\'(反斜杠)   '^'(抑扬音)   '`'(反引号)   '{'(弯曲的左括号或大括号)   '|' (竖线)   '}'(弯曲的方括号或大括号)
  6.   

摘要:

对于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"

希望这对您有所帮助。