嗨我想在我的Jetty中拒绝过大的身体或标题的传入请求。我想我必须设置一些过滤器,但我还没有找到任何解决方案。你有什么建议吗?谢谢。
答案 0 :(得分:1)
很容易构建一个Servlet Filter
或Jetty Handler
,它会关注请求的Content-Length
标头,然后拒绝(以http错误状态代码响应)请求。
关于标题大小限制,由HttpConfiguration.setRequestHeaderSize(int)
但是,有一类请求,使用Chunked Transfer-Encoding
,对这些类型的请求,没有Content-Length
,您只需要在从{{读取时拒绝请求3}}它达到一定的大小后。
还有Mime多部分请求正文内容的复杂性以及您如何确定请求内容过大。
遗憾的是,另一个注意事项是,由于必须执行HTTP连接处理,即使客户端向您发送了太大的请求正文内容,服务器仍然必须读取整个正文内容并将其丢弃。这是在规范中找到的半封闭方案,它由客户端查看早期拒绝的http响应并关闭/终止连接。