Nginx 有没有办法判断 POST 的参数

2018-03-26 21:56:42 +08:00
 maowenjie

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

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

4920 次点击
所在节点    NGINX
7 条回复
Immortal
2018-03-26 22:01:33 +08:00
第一反应是换 openresty+lua 处理

但是一般你这样的情况不会走这么歪.拦截空参数的第一道应该是客户端,客户端估计能挡住 95%的非法请求,剩下的就是一些别人抓包之类的请求,这些总不至于把你的 api 打挂吧..

如果 lz 做共用 api 的当我没说
maowenjie
2018-03-26 22:08:36 +08:00
一个 API 现在会收到大量的请求
但是有个 POST 参数是空的 也就是无效的 想拦截再 NGINX 上
Zzde
2018-03-26 22:10:29 +08:00
$request_body
maowenjie
2018-03-26 22:32:42 +08:00
@Zzde $request_body 可以获取到 整个 POST
但是如何判断呢

我试了
if ($request_body ~* "username=&") {
return 403;
}
但不成功
dndx
2018-03-27 03:11:55 +08:00
defunct9
2018-03-27 07:15:40 +08:00
F5 上可以拆 payload,nginx 应该有差不多的模块,没有就手写一个
maowenjie
2018-03-27 12:36:24 +08:00
NGINX 装了 lua 然后写了个规则 返回 403 搞定了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/441620

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX