와 같은 오류 메시지가 나타나는 경우가 있다.
1. 발생 원인
요청된 HTTP의 request parameter 가 최대 설정을 초과할 경우 발생
2. 해결 방법
MaxRequestParameter 설정 (기본값 10,000)
3. 옵션 설명
MaxRequestParameter는 HTTP Request에 포함될 수 있는 Paramter 개수를 설정
악의적인 사용자의 공격을 막기 위한 로직이 추가됨 (CVE-2011-5035)
- 2013년 1월부터 적용
- WLS 10.3.5 PSU3 / WLS10.3.6 PSU1부터 로직 추가
PSU 패치를 설치하지 않으면 해당 옵션은 기능을 하지 않음.
4. 설정 방법
config.xml 에
<web-app-container>
<max-request-parameter-count>100000</max-request-parameter-count>
</web-app-container>
와 같이 최대값을 조정하여 설정해주면 된다.
하지만 이 값을 이렇게 설정 되어 있는 경우는 이유가 있고
상식적으로 parameter 가 이렇게 많이 들어오는게 맞지는 않으므로
이렇게 해결하는 것은 권장하지 않는다. (parameter 값을 줄이는게 답이다.)
위의 경우는 일반적인 경우고 나의 경우는
소스에서 post 방식으로 데이터 전송을 하고 있었는데 content-type 을 application/x-www-form-urlencoded 으로 전송 하고 있었다. 이렇게 되면 http body 내용이 key=value 패턴으로 encoding 되어 수많은 파라미터로
둔갑하게 된다. 결국 해당 content-type 을 변경 하여 해결하였다
댓글