我的网站目录中有几个文件夹,其中包含名为" secure.txt"的文本文件。 出于安全原因,这些文件的URL永远不会显示在webbrowser中,但我的网站会搜索包含敏感信息的这些文件(PHP代码)。
如何让PHP代码可以读取这些文件但通过url限制访问,这样潜在的黑客就无法读取这些文件的内容?
答案 0 :(得分: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
答案 1 :(得分:1)
你应该将它们放在另一个文件夹中并从所有文件中删除.htaccess,允许来自127.0.0.1
答案 2 :(得分:1)
老技巧:用<?php die("I'm a fraid I can't do that, Jim"); ?>
作为前缀,然后将它们称为*.php
。在解析时,忽略前缀。
修改强>
为什么这样?其背后的基本原理是,您可以避免依赖某些特殊的Web服务器配置,这些配置会被遗忘(移动到新服务器时),不可用(许多便宜的主机不会给您.htaccess),不适用于某些Web服务器软件(IIS)等。
因此,推理是将一些计算开销与灵活性,可移植性和平台独立性进行交换。
答案 3 :(得分:0)
您可以将它们完全移出您的网站目录吗?如果是这样,那么确保PHP可以访问该目录! (open_basedir
值需要包含它。)
答案 4 :(得分:0)
我建议将文件移出webroot以保证安全[/ p>]
答案 5 :(得分:0)
如果您使用Apache,则拒绝访问secure.txt
内所有名为httpd.conf
的文件:
<Files secure.txt>
deny from all
</Files>
您也可以通过.htaccess
文件执行相同的操作(如果您的服务器配置为允许来自htaccess的覆盖访问权限)。
但更好的解决方案是将敏感信息包含在PHP脚本本身中,或将其存储在数据库中。