[Apache Tomcat] maxPostSize, maxParameterCount
Apache Tomcat에서 서버로 Post 방식을 이용한 Submit 시 파라미터 개수와 사이즈를 확인하여 그 이상 범위일 경우에는
아래와 같은 설정을 변경하여야 한다. 해당 속성의 설명과 기본 값은 아래 Apache Tomcat 문서를 통해서도 확인이 가능하다.
- 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"/>
'OS & Server > Linux' 카테고리의 다른 글
[Apache Tomcat] Context docBase를 이용하여 웹 어플리케이션에서 파일 시스템 접근 (0) | 2023.06.02 |
---|---|
[LINUX] CIFS를 이용한 외부 서버 파일 시스템 접근 (0) | 2023.06.02 |
[Linux] 리눅스 마운트 디렉토리 경로 변경 (6) | 2023.02.21 |
[Linux] 리눅스에서 쉘 스크립트(Shell Script)로 명령어 실행 (0) | 2023.02.15 |
[Linux] 날짜를 기준으로 생성 및 수정된 파일 찾기 (0) | 2023.01.25 |
댓글