如何限制WAI中请求正文和标头的大小?

ins*_*itu 5 haskell haskell-wai scotty

我正在使用Scotty以及WAI开发应用程序。我希望能够限制请求的大小,包括正文长度和标头。我怎样才能做到这一点?是否可以使用普通的WAI中间件来实现?

Mic*_*man 5

我不知道 Scotty 的详细信息,但肯定可以设置一个 WAI 中间件来查看 requestBodyLength 如果它太大,则返回适当的 413 状态代码页。您需要处理的一件事是上传正文是否使用分块编码发送,在这种情况下不存在内容长度。但这并不常见。您可以选择拒绝这些请求,或者添加代码来包装请求正文并在结果太大时返回错误(这就是 Yesod 所做的)。