我需要配置 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
。