nginx. 拒绝 URL 中的任意两个点

nginx. 拒绝 URL 中的任意两个点

我需要配置 nginx 服务器,如果 URL 中包含两个点 (..),则显示 403 页面。例如,如果 URL 是“site.sit/index.php?log=../conf.php - web 服务器应该检测到尝试访问上述目录并显示 403 消息。我尝试在 nginx conf 文件中配置这个想法:

location \.\. {
    deny all;
    }

但这不起作用。

告诉我,我该如何实施这个计划?

答案1

location指令仅着眼于规范化URI 位于 - 的左侧?,因此它将错过..参数中的任何序列。

如果您需要检查提交到服务器的原始 URI(包括参数),请改用正则表达式$request_uri

例如:

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

这种警告关于该指令的使用if

相关内容