我希望阻止我的应用程序来自resource consumption
类型的DoS攻击。这意味着攻击者可以使用服务器资源,例如内存和存储器。通过将大文件上传到服务器来获得光盘容量。
我想知道是否可以检查传入文件中的元数据(如大小),并在达到限制时取消上传。否则,攻击者可能会将20 GB文件上传到服务器,如果服务器等待上传完成以进行验证,那么即使在上传完成之前,我的服务器也可能充斥着这么大的文件。
我想知道如何用Java做到这一点。我正在使用Apache / coyote 1.1。
更新
我在PHP中找到了一个解决方案如下。
post_max_size integer
Sets max size of post data allowed. This setting also affects file upload.
To upload large files, this value must be larger than upload_max_filesize.
If memory limit is enabled by your configure script, memory_limit also
affects file uploading. Generally speaking, memory_limit should be larger
than post_max_size. When an integer is used, the value is measured in bytes.
Shorthand notation, as described in this FAQ, may also be used. If the size
of post data is greater than post_max_size, the $_POST and $_FILES
superglobals are empty [...]
max_file_uploads integer
The maximum number of files allowed to be uploaded simultaneously. Starting
with PHP 5.3.4, upload fields left blank on submission do not count towards
this limit.
Java中是否有替代品?
答案 0 :(得分:1)
https://www.netroby.com/view.php?id=3585,看看您是否可以限制文件上传大小。
答案 1 :(得分:1)
我们可以通过以下方式衡量上传文件的大小,
客户端(使用HTML5,JSP,JS等)
上传期间的动态衡量(容器级别)
上传结束后的测量(容器级别)
因为可以调整/破解#1实现。依靠#2是件好事。 MultipartConfig能够在达到限制时中断文件上传(属于#2)。
注意: