【问题标题】:How to limit the size of an HTTP request in Java?如何在 Java 中限制 HTTP 请求的大小?
【发布时间】:2014-08-13 15:51:24
【问题描述】:

Express (NodeJS),你可以像这样限制请求大小:

app.use(express.limit('2mb'));

是否有 Java 等价物?我使用的是Jersey,所以任何针对泽西岛的解决方案都可以。

经过一番不成功的研究,我只能想出两个解决方案:

  1. 自己编写这样的过滤器
  2. 使用 Web 服务器强制实施限制。就我而言,它是 Apache HTTP 服务器后面的 Tomcat。

你会推荐什么?您是否知道我缺少的现有库(以避免自己编写过滤器)?

【问题讨论】:

  • 限制文件大小的原因是什么?如果这不是应用程序的真正限制,我会倾向于服务器配置。
  • 同意@jurgemaister。还因为用户可以绕过应用程序对大小的检查将请求复制到服务器。在这种情况下,服务器会接受一个不可接受的请求
  • @jurgemaister 限制请求正文的原因主要是为了让某些拒绝服务攻击更加困难。

标签: java http limit servlet-filters


【解决方案1】:

您可以在 Jersey 中使用注释。

试试这样的想法:

@MultipartConfig(
    maxFileSize=10485760,     // 10Mb max
    fileSizeThreshold=524288, //512 Kb before buffering to disk
    maxRequestSize=10240      // 10Kb of meta data
    location=/tmp             // with permission to write, default uses tomcat tmp
)

【讨论】:

    猜你喜欢
    • 2019-07-07
    • 2012-02-21
    • 2011-01-25
    • 2011-09-06
    • 2011-07-21
    • 1970-01-01
    • 2015-01-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多