技术解析

Nginx 有没有办法判断 POST 的参数
0
2021-05-20 19:54:43
idczone

我用 $arg_xxx 只能判断到 GET 的参数 我想判断 POST 的参数 如果某变量为空 就拦截掉 再 PHP 里判断拦截 大流量的情况下 很快大带宽服务器就 502 错误了

不知道有什么解决方案没 网站前面加了 CLOUDFLARE


第一反应是换 openresty+lua 处理
但是一般你这样的情况不会走这么歪.拦截空参数的第一道应该是客户端,客户端估计能挡住 95%的非法请求,剩下的就是一些别人抓包之类的请求,这些总不至于把你的 api 打挂吧..
如果 lz 做共用 api 的当我没说

一个 API 现在会收到大量的请求
但是有个 POST 参数是空的 也就是无效的 想拦截再 NGINX 上

$request_body

$request_body 可以获取到 整个 POST
但是如何判断呢
我试了
if ($request_body ~* "username=&") {
return 403;
}
但不成功

用 https://github.com/openresty/lua-nginx-module#ngxreqget_post_args。

F5 上可以拆 payload,nginx 应该有差不多的模块,没有就手写一个

NGINX 装了 lua 然后写了个规则 返回 403 搞定了

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服