上下文:我在linux web服务器上有一些文件,例如create_db.txt。他们在我的PHP脚本中使用,但现在每个人都可以通过直接链接观看它们
http://url/create_db.txt
什么是拒绝访问这些文件的正确方法,仍然有机会从PHP脚本中调用和读取它们的信息。谢谢。
如果您使用的是Apache
,则可以通过在Web根目录中添加.htaccess
文件来限制对特定文件的访问:
<Files create_db.txt>
Order allow, deny
Deny from all
</ Files>
上面的Files
部分将限制所有用户访问create_db.txt
文件。
运行nginx
可以通过在配置中添加以下内容来实现:
location ^~ /create_db.txt {
deny all;
}
如同在其他答案中所述,您真的应该考虑将文件移动到webroot之外的目录中。当然,网络服务器必须能够访问此文件夹。这可以通过在文件夹上设置正确的权限来完成,也可以通过将所有者更改为Web服务器的权限来完成。像这样的东西:
mkdir -m 755 -p /path/outside/webroot
mv create_db.txt /path/outside/webroot
chown -R <user>:<group> /path/outside/webroot
最好的方法是永远不要将不应该访问的文件放入Web根目录中的文件中。把它们放在外面的文件夹中。如果无法做到这一点,请将它们放在特定的文件夹中,并通过.htaccess
或您的网络服务器接受的任何内容拒绝访问