본문 바로가기
OS & Server/Linux

[Apache Tomcat] maxPostSize, maxParameterCount

by 주리니e 2023. 3. 29.
728x90

[Apache Tomcat] maxPostSize, maxParameterCount

 

 

Apache Tomcat에서 서버로 Post 방식을 이용한 Submit 시 파라미터 개수와 사이즈를 확인하여 그 이상 범위일 경우에는 
아래와 같은 설정을 변경하여야 한다. 해당 속성의 설명과 기본 값은 아래 Apache Tomcat 문서를 통해서도 확인이 가능하다.

 

Apache Tomcat 9 Configuration Reference (9.0.73) - The HTTP Connector

This Connector supports all of the required features of the HTTP/1.1 protocol, as described in RFCs 7230-7235, including persistent connections, pipelining, expectations and chunked encoding. If the client supports only HTTP/1.0 or HTTP/0.9, the Connector

tomcat.apache.org

 

 

  • maxPostSize

maxPostSize의 기본값을 넘을 경우 파라미터를 null 처리하여 서버에서 파라미터를 받을 수 없다. 아파치 톰캣의 기본 설정값은 2097152(2MB)로 이 이상의 사이즈를 보내게 되면 FaildRequestFilter에서 요청을 거부한다. 0보다 작은 값으로 설정하여 이 제한을 비활성화할 수 있다.

maxPostSize The maximum size in bytes of the POST which will be handled by the container FORM URL parameter parsing. The limit can be disabled by setting this attribute to a value less than zero. If not specified, this attribute is set to 2097152 (2 megabytes). Note that the FailedRequestFilter can be used to reject requests that exceed this limit.

 

  • maxParameterCount

maxParmaeterCount의 기본 값이 넘을 경우 기본 값에 해당하는 파라미터 수만 가져오고 나머지 파라미터는 가져오지 못한다. 기본 파라미터의 제한 개수는 10000개이며 이 이상의 파라미터를 보내게 되면 FaildRequestFilter에서 요청을 거부한다. 0보다 작은 값으로 설정하여 이 제한을 비활성화할 수 있다.

More than the maximum number of request parameters (GET plus POST) for a single request ([10,000]) were detected. 
Any parameters beyond this limit have been ignored. To change this limit, set the maxParameterCount attribute on the Connector.

단일 요청 ([10,000])에 허용되는 최대 요청 파라미터들의 개수 보다 더 많은 파라미터들이 탐지되었습니다. 
이 한계값을 초과하는 파라미터들은 무시되었습니다. 이 한계값을 변경하기 위해서는 Connector의 maxParameterCount 속성을 설정하십시오.
maxParameterCount The maximum total number of request parameters (including uploaded files) obtained from the query string and, for POST requests, the request body if the content type is application/x-www-form-urlencoded or multipart/form-data. Request parameters beyond this limit will be ignored. A value of less than 0 means no limit. If not specified, a default of 10000 is used. Note that FailedRequestFilter filter can be used to reject requests that exceed the limit.

 

 

  • server.xml

maxPostSize와 maxParameterCount 값의 설정은 Apache Tomcat의 server.xml 안에 있는 Connecter 태그에 아래 속성을 추가함으로써 수정할 수 있다.

maxPostSize="-1" maxParameterCount="-1"

server.xml 에는 세가지 Connector 태그가 존재한다. 기본, SSL, AJP(Apache와 연동)이며 사용하고 있는 방식에 따라 해당 태그에 속성을 추가하여야 한다. SSL(443) 설정을 한 후 443포트를 이용하여 통신(Submit)을 하는데 기본(8080) 커넥터에 설정을 한 경우에는 위 속성값이 적용되지 않음에 주의한다.



  • 기본 (8080)
<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" maxPostSize="-1" maxParameterCount="-1"/>
  • SSL (443)
<Connector SSLEnabled="true" URIEncoding="UTF-8" clientAuth="false" keystoreFile="jiurnine.jks" keystorePass="jiurnine" maxThreads="150" port="443" protocol="HTTP/1.1" scheme="https" secure="true" sslProtocol="TLS" maxPostSize="-1" maxParameterCount="-1"/>
  • AJP (아파치와 연동 : 8009)
<Connector protocol="AJP/1.3" address="::1" port="8009" redirectPort="8443" secretRequired="false" maxPostSize="-1" maxParameterCount="-1"/>

 

728x90

댓글