17

このエラーが発生します:

Exception during request processing:
Caused by javax.servlet.ServletException with message:
"Parameter count exceeded allowed maximum: 512"

投稿で渡されるパラメータの数には制限があるようです。

JBossでこの制限を拡張するにはどうすればよいですか?

4

5 に答える 5

22

パラメータの数は、ハッシュマップ衝突サービス拒否攻撃をプラグインするためにすべてのWebサーバーで制限されていました。

次のシステムプロパティを構成ファイルに追加することで、制限を引き上げることができます(例standalone.xml)。

<property name="org.apache.tomcat.util.http.Parameters.MAX_COUNT" value="10000"/>

ソース

于 2012-09-05T08:23:37.777 に答える
9

念のため:プレーンTomcatの場合、対応する解決策は次を追加することです:

org.apache.tomcat.util.http.Parameters.MAX_COUNT=10000

catalina.properties

于 2013-07-18T10:47:30.300 に答える
5

はい、そうです!アーロン・ディグラ氏は正解でした!
ただし、次の点に注意してください。Jboss7では、行を挿入してください

<system-properties>
<property name="org.apache.tomcat.util.http.Parameters.MAX_COUNT"value="10000"/> </system-properties>

タグの直後で、<extensions>JBoss 7がstandalone.xmlを解析するときにエラーが発生しない場合は、例を挙げてみましょう。

<?xml version='1.0' encoding='UTF-8'?>
<server xmlns="urn:jboss:domain:1.2">
<extensions>
    <extension module="org.jboss.as.clustering.infinispan"/>
    <extension module="org.jboss.as.configadmin"/>
    ...
</extensions>
<system-properties>
    <property name="org.apache.tomcat.util.http.Parameters.MAX_COUNT" value="10000" />
</system-properties>
于 2013-07-11T08:12:55.647 に答える
0

WildFlyを使用している場合の別の方法は、standalone.xmlファイルを編集して追加することmax-parametersです。

<http-listener name="default" socket-binding="http" max-parameters="2690"/>

スタンドアロン.xmlの例:

...

<subsystem xmlns="urn:jboss:domain:undertow:1.1">
   <buffer-cache name="default"/>
   <server name="default-server">
       <!-- change here-->
       <http-listener name="default" socket-binding="http" max-parameters="2690"/>
       <!-- change here-->
       <host name="default-host" alias="localhost">
           <location name="/" handler="welcome-content"/>
           <filter-ref name="server-header"/>
           <filter-ref name="x-powered-by-header"/>
       </host>
    </server>

...
于 2017-11-01T18:05:27.550 に答える
0

次のスニペットをJBossサーバーのstandalone.xmlに貼り付ける必要があります。

<server name="default-server">
                <http-listener name="default" socket-binding="http" max-parameters="5000"/>
                <https-listener name="https" socket-binding="https" max-parameters="5000"/>
                <host name="default-host" alias="localhost">
                    <location name="/" handler="welcome-content"/>
                    <filter-ref name="server-header"/>
                    <filter-ref name="x-powered-by-header"/>
                    <http-invoker security-realm="ApplicationRealm"/>
                </host>

max-parameter値を持つHTTPリスナータグに焦点を当てることが違いを生みます。このフィールドのデフォルト値は次のとおりです。-

org.apache.tomcat.util.http.Parameters.MAX_COUNT=1000

これは、ここで説明するように、ハッシュマップ衝突のサービス拒否攻撃に対する救済策として行われました。

于 2018-12-14T07:44:52.373 に答える