我的网站目录中有几个文件夹,其中包含名为“secure.txt”的文本文件。出于安全原因,这些文件的 URL 从不显示在网络浏览器中,但我的网站会搜索这些文件(PHP 代码),其中包含敏感信息。
如何让 PHP 代码允许读取这些文件但限制通过 url 访问,这样潜在的黑客就无法读取这些文件的内容?
将它们放在文档根文件夹之外,并将以下 .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
您应该将它们放在另一个文件夹中并使 .htaccess 拒绝所有,允许来自 127.0.0.1
老把戏:用 前缀文件<?php die("I'm a fraid I can't do that, Jim"); ?>
,然后调用它们*.php
。在解析时,忽略前缀。
编辑
为什么要这样做?其背后的基本原理是,您避免依赖于某些特殊的网络服务器配置,这些配置会被遗忘(移动到新服务器时)、不可用(许多廉价主机不给您 .htaccess)、不适用于某些网络服务器软件(IIS) 等
因此,理由是用一些计算开销来换取灵活性、可移植性和平台独立性。
如果您使用 Apache,请拒绝访问secure.txt
从内部命名的所有文件httpd.conf
:
<Files secure.txt>
deny from all
</Files>
您也可以通过.htaccess
文件执行相同的操作(如果您的服务器配置为允许从 htaccess 覆盖访问权限)。
但更好的解决方案是将敏感信息包含在您的 PHP 脚本本身中,或者将其存储在数据库中。
您可以将它们完全移出您的网站目录吗?如果是这样,那么请确保 PHP 可以访问该目录!(该open_basedir
值需要包含它。)
为了安全起见,我建议将文件移出 webroot