V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
NGINX
NGINX Trac
3rd Party Modules
Security Advisories
CHANGES
OpenResty
ngx_lua
Tengine
在线学习资源
NGINX 开发从入门到精通
NGINX Modules
ngx_echo
maowenjie
V2EX  ›  NGINX

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

  •  
  •   maowenjie · 2018-03-26 21:56:42 +08:00 · 4920 次点击
    这是一个创建于 2468 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    7 条回复    2018-03-27 12:36:24 +08:00
    Immortal
        1
    Immortal  
       2018-03-26 22:01:33 +08:00
    第一反应是换 openresty+lua 处理

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

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

    我试了
    if ($request_body ~* "username=&") {
    return 403;
    }
    但不成功
    dndx
        5
    dndx  
       2018-03-27 03:11:55 +08:00
    defunct9
        6
    defunct9  
       2018-03-27 07:15:40 +08:00 via iPhone
    F5 上可以拆 payload,nginx 应该有差不多的模块,没有就手写一个
    maowenjie
        7
    maowenjie  
    OP
       2018-03-27 12:36:24 +08:00
    NGINX 装了 lua 然后写了个规则 返回 403 搞定了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2825 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 03:11 · PVG 11:11 · LAX 19:11 · JFK 22:11
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.