Java 如何防止从服务器端上传大文件

Java 如何防止从服务器端上传大文件,java,tomcat,file-upload,ddos,denial-of-service,Java,Tomcat,File Upload,Ddos,Denial Of Service,我希望防止我的应用程序受到资源消耗类型的DoS攻击。这意味着攻击者可以通过将大型文件上载到服务器来消耗服务器资源,如内存和磁盘容量 我想知道是否有可能检查传入文件的元数据,如大小,并在达到限制后取消上载。否则,攻击者可能会将一个20 GB的文件上载到服务器,如果服务器等待上载完成以进行验证,那么即使在上载完成之前,我的服务器也可能被如此大的文件淹没 我想知道如何用Java实现这一点。我正在使用Apache/Coyote1.1 更新: 我在PHP中找到了如下解决方案 post_max_size

我希望防止我的应用程序受到
资源消耗类型的DoS攻击
。这意味着攻击者可以通过将大型文件上载到服务器来消耗服务器资源,如内存和磁盘容量

我想知道是否有可能检查传入文件的元数据,如大小,并在达到限制后取消上载。否则,攻击者可能会将一个20 GB的文件上载到服务器,如果服务器等待上载完成以进行验证,那么即使在上载完成之前,我的服务器也可能被如此大的文件淹没

我想知道如何用Java实现这一点。我正在使用Apache/Coyote1.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中是否有替代品?

,看看您是否可以限制文件上载大小。

我们可以通过以下方法测量上载文件的大小

  • 客户端(使用HTML5、JSP、JS等)

  • 上传期间的动态测量(容器级别)

  • 上传结束后测量(容器级别)

  • 因为可以调整/破解#1实现。信赖是好的。能够在达到限制(在#2下)时中断文件上载

    注:

  • 您可以使用多部分配置作为注释(或servlet) web.xml文件中的配置元素

  • 我认为您可能应该根据客户端大小检查文件大小,如果超过理想大小,则限制上载。当文件传输到服务器时,服务器端文件上的元数据将可用。攻击者可以通过禁用javascript等技巧轻松绕过客户端验证。我想知道是否有任何方法可以在上传过程中检查文件状态并采取相应措施。一个人可以发送10万个小文件,而不是发送一个大文件。这根本不能增强您的安全性。我们可以通过IP限制和all等其他方法来防止这种情况。我正在寻找这个特定的解决方案。你根本无法使用软件阻止dos攻击……这个方法检查传入的文件吗?如果在上载完成后进行检查,则此配置将不会有用。此配置是web.xml的一部分,它与应用程序一起部署到服务器上,它告诉服务器此应用程序可以处理的文件上载大小,许多服务器在服务器或应用程序级别支持此类配置。检查您的服务器配置如果它允许在服务器级别进行配置,否则您需要通过web.xml进行配置,这将根据为您的服务器或应用程序配置的大小限制检查传入文件的有效性谢谢。我对答案投了赞成票。如果没有填充任何其他更好的方法,我会将其标记为已接受。