从目录列表中获取 php 文件

从目录列表中获取 php 文件

在我的网站中,有一些 PHP 文件,我将它们包含在其他 php 文件中...它们执行不同的任务,例如连接到我的数据库和各种其他功能...现在我知道了我的文件的给定路径..所以我可以给出类似的路径

http://www.mysite.com/myfiles/

这将提供该目录中文件的目录列表。

我知道为了避免目录列表我将输入文件名index.html或者index.php通过这样做而不是目录列表

但我仍然知道文件的路径..http://www.mysite.com/myfiles/con.php通过这样做,代码被执行,但你可以看到源代码,因为它是客户端..

但是当有人知道路径时,有没有办法获取该 PHP 文件及其源代码?这会存在安全风险,不是吗?

答案1

嗯,首先,您应该能够禁用目录列表(从而无需用无用的 index.php 文件污染目录树),只需在包含目录中的 .htaccess 文件中添加以下行即可:

Options -Indexes

现在,关于用户能够获取 php 源代码,只要您的网络服务器设置正确,可以解释 php 文件,而不仅仅是直接提供这些文件,那就没问题了(假设您的包含文件没有echo()任何变量或类似的愚蠢的东西)。

答案2

如果您为 PHP 文件定义了 AddType 或 SetHandler,那么它将被 apache/webserver 解释,然后再提供给客户端。因此客户端看不到 php 源代码,而只能看到生成的 html。

答案3

如果我理解正确的话,您希望获取 PHP 源代码,以便人们知道 PHP 文件的实际 URL。您可能会使用类似的东西,但请记住:它不是真正的安全性,因此最好不要将其包含在包含私人信息(如数据库用户/密码等)的 PHP 文件中。

<?php
 if($_GET['hash'] === "jV1V-7-VhS09K-_77GtEoOd86K2-ba-W") {
   show_source(__FILE__);
 }
?>

这样,只有知道“哈希”的人(以及暴力破解你的坏人)才能通过以下方式获取源代码:http://example.org/myfiles/con.php?hash=jV1V-7-VhS09K-_77GtEoOd86K2-ba-W

相关内容