V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
DoraemonWOO
V2EX  ›  问与答

Nginx 正则求助!

  •  
  •   DoraemonWOO · Aug 8, 2023 · 1357 views
    This topic created in 993 days ago, the information mentioned may be changed or developed.
    网站被注入了,服务器网站很多包含不同服务器,目前得先拦截请求进来。
    所有的请求规律都是以下这些
    /?X0CVl=.xlsx20230808gGouW
    /?XTf79=.ppt2022060887RX
    /?aAuH9=.xlsx20230516hNvI
    /?65si=.doc20230806AxhFq
    麻烦帮我写一下 nginx 的规则把它跳到 403.

    试了 GPT3.5 的好几个回答都不太靠谱,不兼容 nginx
    location ~* /\?[a-zA-Z0-9]+=(\w+)\.\w+(\d{8})\w+ {
    return 403;
    }
    iBugOne
        1
    iBugOne  
       Aug 8, 2023 via Android
    nginx location 只匹配 uri 的 path 部分,也就是 nginx 的 $uri 变量,你这个看情况是 path = root 但是带上了 query ,可以在 location = / 里套一个 if ($is_args = "?") { return 403; } 解决。其中 $is_args 是个自动变量,如果请求有 query parameters 它的值就是一个问号
    ysc3839
        2
    ysc3839  
       Aug 8, 2023 via Android
    用 if 匹配 $args 变量
    https://nginx.org/en/docs/http/ngx_http_rewrite_module.html#if
    文档可以查到 if condition 的语法,用 ~ (区分大小写) 或 ~* (不区分大小写) 可以进行正则匹配。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   947 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 97ms · UTC 21:28 · PVG 05:28 · LAX 14:28 · JFK 17:28
    ♥ Do have faith in what you're doing.