如何防止在地址栏中显示文件?

时间:2012-05-06 18:49:48

标签: php

我有一个网站,我想创建一个包含所有用户日志的log.txt文件。例如,用户随时登录并注销。也就是说,用户登录和退出的时间。我可以用数据库做这个,但会有很多行,我不想要它。如果我将log.txt文件放到/logs/log.txt,则将domain.com/log/log.txt写入地址栏的任何用户都将看到该文件。我怎么能阻止这个。 (我使用PHP)

3 个答案:

答案 0 :(得分:2)

确实可以使用.htaccess隐藏网站访问者的文件,或者在其他Apache配置位置放置类似的规则。但这种事情并非无足轻重,而且很容易犯错误。从站点访问者隐藏文件的最佳方法是通过项目的目录结构。例如:

  • 目录www/,包含网站访问者需要直接使用浏览器访问的所有文件。这将是我们在Apache配置中作为网站root使用的目录。如果浏览器不需要获取文件,则不应该在此处。
  • 其他目录,例如logs/用于日志,lib/用于包含在脚本中的源代码,config/用于设置和配置文件等。因为它们不在内部网站根目录(www/),用户无法将浏览器指向任何这些文件。

如果你在共享主机上,并且他们只给你一个你的网站根目录的文件夹,那么你不能这样做。我不会从这样的公司购买托管帐户,因为有很多东西可以让你把文件放在你的网络根目录之外。

答案 1 :(得分:1)

使用.htaccess

   <Files "log.txt">
        order deny,allow
        deny from all
        allow from 1.2.3.4
    </Files>

1.2.3.4是您的IP,如果您希望能够通过该网站从您的浏览器访问它。否则删除该行,这样您只能通过FTP或脚本访问

答案 2 :(得分:0)

您可以使用包含

的.htaccess文件阻止对日志文件夹的http访问
deny from all