辋川集

木末芙蓉花,山中发红萼,涧户寂无人,纷纷开且落

By - 陳 思敬

Parameters Count Greater Than Limit

我们的新项目在QA测试阶段遭遇以下错误:

java.lang.RuntimeException: parameters count greater than limit! max: 100

最初我们以为是 ngnix 的限制,然后拿掉 nginx 之后,错误依旧,而 resin 的配置文件,没并发现可以限制的配置。最闹心的是,本地 Windows 无法重现。
我的直觉:
这是容器出于安全的考虑,对程序做的默认限制,我建议,修改程序适应规范。
咨询了下首席架构师:

这是我们resin的一个限制,避免太多的参数攻击。如果你的应用需要很多的post,让网络取消这个限制吧,更换resin.jar。但是可能收到攻击。
批量数据用一个参数,不要用太多参数也行。
用一个参数也可以穿大批数据。更简单,支持参数太多容易受攻击。
完整报错:

at com.caucho.server.connection.Form.parsePostData(Unknown Source)
at com.caucho.server.connection.AbstractHttpRequest.parseQuery(AbstractHttpRequest.java:2070)
at com.caucho.server.connection.AbstractHttpRequest.getParameterValues(AbstractHttpRequest.java:1996)
at com.caucho.server.connection.AbstractHttpRequest.getParameter(AbstractHttpRequest.java:2006)
at _jsp._action._do_0task__jsp._jspService(_do_0task__jsp.java:81)
at com.caucho.jsp.JavaPage.service(JavaPage.java:61)
at com.caucho.jsp.Page.pageservice(Page.java:578)
at com.caucho.server.dispatch.PageFilterChain.doFilter(PageFilterChain.java:195)
at cn.pconline.activity.util.AgentFilter.doFilter(AgentFilter.java:70)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259)
at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:87)
at cn.pconline.activity.util.EnvFilter.doFilter(EnvFilter.java:43)
at com.caucho.server.dat com.caucho.server.port.TcpConnection.run(TcpConnection.java:682)
at com.caucho.util.ThreadPool$Item.runTasks(ThreadPool.java:730)
at com.caucho.util.ThreadPool$Item.run(ThreadPool.java:649)

1 thought on “Parameters Count Greater Than Limit

Christen December 15, 2016 at 12:26 pm

今天这个记录被同事搜索到了……

Reply

Leave a Reply

Your email address will not be published.
*
*