使用htaccess拒绝通过浏览器访问目录文件

时间:2010-11-01 07:04:48

标签: php

我想拒绝(从所有未登录的用户)访问浏览器中目录中的所有文件。

只有登录用户才能访问该文件夹中的文件。文件路径以登录的用户ID存储在数据库中,因此当用户登录时,他只能查看或下载他的文件。

所以我不希望其他人(没有登录)从浏览器访问文件夹和文件,其次,我希望用户只能查看文件夹中的文件。

我认为,我可以用php中的一些条件检查做第二件事,但对于第一件事,有人能告诉我实现的htaccess规则吗?

谢谢

5 个答案:

答案 0 :(得分:1)

对于.htaccess用户访问的部分,您可以在.htaccess密码生成器上查看here

答案 1 :(得分:1)

不要向他们展示存储文件的实际文件夹路径。

使用php文件获取可下载内容。

例如: - download.php?file = mydocument.doc

缺点:

  1. 可能会很慢
  2. 没有下载简历支持(我猜)

答案 2 :(得分:0)

您可以使用.htaccess禁用默认目录浏览。

  • 打开.htacces文件

  • 查找选项索引

  • 如果存在选项索引,请修改它 选项 - 索引或添加 选项 - 索引为新行

    目前应禁用目录浏览功能

答案 3 :(得分:0)

这篇文章详细描述了Apache Web服务器的访问控制功能:http://httpd.apache.org/docs/2.0/howto/auth.html

最简单的变体以下列方式查找:

AuthType Basic
AuthName "Restricted Files"
AuthUserFile /usr/local/apache/passwd/passwords
顺便说一句,这部分:

  

只有登录用户才能访问他的用户   该文件夹中的文件。文件路径   与...一起存储在数据库中   登录用户ID,以便当   用户登录后,可以查看或下载   只有他的文件。

将要求为每个文件夹创建单独的密码文件,或者需要一些额外的脚本。

这种方法存在一些已知问题:

  • 基本身份验证方案将密码作为明文发送,如果您的站点可通过HTTP(而非HTTPS)访问,则这种方式并不好。还有Digest身份验证类型,但浏览器支持存在一些问题

  • 注销操作需要关闭浏览器

一般来说,我建议:

  • Apache内置功能 - 用于简单的访问控制,无需详细的用户权限/权限配置

  • 通过一些Web编程工具进行自定义访问控制 - 用于具有所谓的priveleges /权限配置的身份验证方案。有许多Web开发框架,它们提供访问控制功能。

答案 4 :(得分:0)

感谢您的回复,我找到了一个工作正常的代码片段。 我在.htaccess文件中插入了以下行:

命令拒绝,允许
拒绝所有