在基于Spring构建的Java Web应用程序中,可以上传文件。这些文件上传的大小通过dispatcher-servlet.xml
中的以下bean属性来限制:
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxUploadSize" value="7000000" /><!-- amount is in Bytes -->
</bean>
如果上传的文件大于定义的限制,则会按预期抛出org.springframework.web.multipart.MaxUploadSizeExceededException
。
问题是超出限制的上传将完成,然后抛出异常,而不是在达到限制时立即抛出 。
对于7MB的限制,可以上传1GB文件(然后收到错误消息) - 这是一个问题。
如果 达到指定的长度,我怎样才能强制Spring中断下载 ?
注意:我对客户端验证不感兴趣,这太容易绕过;目标是通过服务器资源耗尽来避免DOS(例如:恶意演员通过100个僵尸网络从属设备上传100个1GB文件,同时在资源有限的可怜的小VPS上)。
感谢您的帮助!! :)