【发布时间】:2016-09-15 03:10:24
【问题描述】:
在更广泛的上下文中,我们希望限制客户端可以通过 http post 请求发送到服务器的消息的大小。
我想通过使用 http 标头内容长度来做到这一点。 所以我不必阅读全文,只需检查此标头,然后拒绝请求,如果 content-length 太大,如果 content-lenght 丢失也拒绝(http 411错误代码)
所以我想确保消息体的实际大小与请求的内容长度中设置的大小相同。
问题是 Tomcat 或 Spring MVC(我的堆栈)是否会验证内容长度是否实际上代表消息体的实际大小?
(使用过滤器应该很容易实现它,只是想知道 servlet 容器或 spring 调度程序 servlet 是否开箱即用。)
【问题讨论】:
-
我认为 filter 方法是可行的方法——这是一个专门的用例,Tomcat 或 Spring 都默认不这样做。
-
如果没有,它绝对应该。 DDOS 的潜在攻击媒介。
-
谢谢@Ilya - 我们将在这里自动拒绝分块请求。
-
@stdunbar - 我的用例很特殊,但总的来说,可以检查消息正文是否真的是内容长度中的大小,无论如何,如果你把它作为答案我接受它,谢谢!
标签: spring-mvc tomcat servlets content-length