0

我的网站目录中有几个文件夹,其中包含名为“secure.txt”的文本文件。出于安全原因,这些文件的 URL 从不显示在网络浏览器中,但我的网站会搜索这些文件(PHP 代码),其中包含敏感信息。

如何让 PHP 代码允许读取这些文件但限制通过 url 访问,这样潜在的黑客就无法读取这些文件的内容?

4

6 回答 6

2

将它们放在文档根文件夹之外,并将以下 .htaccess 文件放在要保护的文件夹中。此外,如果您不想通过特定 IP 访问它,请删除最后一行。

order deny, allow
deny from all
allow from 192.168.0

[编辑:] 允许 php 脚本等允许 localhost (127.0.0.1)

order deny, allow
deny from all
allow from 127.0.0.1
于 2013-03-31T16:50:16.563 回答
1

您应该将它们放在另一个文件夹中并使 .htaccess 拒绝所有,允许来自 127.0.0.1

于 2013-03-31T16:45:04.813 回答
1

老把戏:用 前缀文件<?php die("I'm a fraid I can't do that, Jim"); ?>,然后调用它们*.php。在解析时,忽略前缀。

编辑

为什么要这样做?其背后的基本原理是,您避免依赖于某些特殊的网络服务器配置,这些配置会被遗忘(移动到新服务器时)、不可用(许多廉价主机不给您 .htaccess)、不适用于某些网络服务器软件(IIS) 等

因此,理由是用一些计算开销来换取灵活性、可移植性和平台独立性。

于 2013-03-31T16:50:05.367 回答
0

如果您使用 Apache,请拒绝访问secure.txt从内部命名的所有文件httpd.conf

<Files secure.txt>
  deny from all
</Files>

您也可以通过.htaccess文件执行相同的操作(如果您的服务器配置为允许从 htaccess 覆盖访问权限)。

但更好的解决方案是将敏感信息包含在您的 PHP 脚本本身中,或者将其存储在数据库中。

于 2013-03-31T16:58:39.377 回答
0

您可以将它们完全移出您的网站目录吗?如果是这样,那么请确保 PHP 可以访问该目录!(该open_basedir值需要包含它。)

于 2013-03-31T16:48:13.370 回答
0

为了安全起见,我建议将文件移出 webroot

于 2013-03-31T16:49:52.640 回答