我们将部分 nginx 访问控制委托给一个单独的服务,我们使用 access_by_lua_file 和 lua-resty-hawk 以及子请求来对请求进行身份验证。
文档说:
在启动子请求之前,您应该始终阅读请求正文(通过调用 ngx.req.read_body 或配置 lua_need_request_body)。
最初我们错过了这个细节,事情似乎正在发挥作用。我试图找到有关此要求的更多背景信息,但一无所获。
在读取正文之前授权请求会很好,因为如果客户端只是试图上传各种垃圾并填满我们的磁盘,我们可能能够提前终止连接并防止一种 DoS 攻击。
为什么会有这个限制?