阻止隐藏(点)php 文件

阻止隐藏(点)php 文件

我想阻止访问隐藏.dot文件,特别是phpNginx 中的文件,但我找不到解决方案。
.ht文件默认是隐藏的,具体如下:

location ~ \.ht {
        deny all;
}

我编写了此规则来匹配以 开头的所有文件,dot但是它不起作用:

location \.(.+\.*)(.*)\.(.+\.*)(.*)$ {
        deny all;
}

以下是一些应隐藏的文件的示例

/.foo.php
/path/to/.foo.php

我应该怎么办?

答案1

您需要仔细查看块的顺序location。此位置:

location ~ /\. {
    deny all;
}

应该匹配任何具有以 开头的路径元素的 URI .

然而,它需要被放置多于任何其他正则表达式位置块。此外,任何使用^~修饰符的前缀位置块都将优先。

这个文件了解详情。

另请注意:问题中的位置块都是错误的。第一个也会匹配index.html,而第二个缺少正~则表达式位置的修饰符。

相关内容