我用 $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 搞定了