【发布时间】:2015-11-06 20:19:13
【问题描述】:
我们将部分 nginx 访问控制委托给一个单独的服务,我们使用 access_by_lua_file 和 lua-resty-hawk 以及子请求来对请求进行身份验证。
docs 说:
在启动子请求之前,您应该始终阅读请求正文(通过调用 ngx.req.read_body 或配置 lua_need_request_body)。
最初我们错过了这个细节,事情似乎在起作用。我试图找到有关此要求的更多背景信息,但一无所获。
最好在读取正文之前授权请求,因为如果客户端只是尝试上传各种垃圾并填满我们的磁盘,我们可能能够提前终止连接并防止一种 DoS 攻击。
为什么会有这个限制?
【问题讨论】:
-
auth_request 用于预认证,无需全文阅读。还可以缓存身份验证响应,以防止来自经过身份验证的用户的冗余请求