如何在Nginx中拒绝包含点点斜杠(相对路径)的路径?

问题描述 投票:0回答:1

我在nginx后面的Web应用程序不应该接收任何包含相对路径的URL,例如../,在Nginx级别直接拒绝它们会更安全。

试过这个配置但没有工作:

location ~ \.\.\/ {
  return 400;
}

有测试用例:

printf "GET /web/../play/find.js HTTP/1.1\r\nHost: www.example.com\r\n\r\n" | nc 127.0.0.1 80
nginx nginx-location
1个回答
0
投票

在@RichardSmith的帮助下,人们可以在任何位置匹配之前添加此正则表达式测试:

if ($request_uri ~ "\.\./"){
    return 403;
}

location / {
    proxy_pass http://localhost:8095;
}
© www.soinside.com 2019 - 2024. All rights reserved.