Perl:获取当前文件夹的.htaccess状态

时间:2009-08-28 09:39:49

标签: perl web-applications .htaccess http-authentication

我开发了一种服务器资源管理器作为我们的Web应用程序的模块,它实际上非常有用。我正在做一些改进,有一个问题,我真的不知道如何解决。

Explorer主要用于从指定的文件夹和子文件夹中选择图片。由于一些学校担心在他们的机构之外分发图片,我们给了他们一个选项,用.htaccess(实际上通过Web-Interface,然后设置.htaccess)确保他们的照片。

当我尝试访问受.htaccess保护的文件夹时,系统会提示该文件夹中的每张图片都有密码。值得注意的是,教师倾向于在每个重大事件上做100多张图片,并喜欢把它塞进一个单独的文件夹中,所以浏览器打开100多个对话框实际上并不罕见。

我们在后端运行Perl所以我认为在将内容传递给jQuery之前我可以检查给定文件夹是否受到保护。问题是,图像也可以通过父文件夹中的.htaccess进行保护。

在发布照片之前,是否有任何安全的方法可以检查外人是否可以访问这些图片(或文件,保持通用并打开以供其他用途使用)?

编辑 - 添加.htaccess文件
     ## OLEFA AUTH START ##
     AuthType Basic
     AuthName“192.168.1.120/resources/images/accesstest”
     AuthUserFile /home/mike/workspace/olefa//resources/images/accesstest/.htpasswd
     要求有效用户
     ## OLEFA AUTH END ##

2 个答案:

答案 0 :(得分:1)

您可能想要探索的选项是在每个目录中存储非图像占位符文件,并在图像之前检索它。如果您无法检索它,则不进行图像提取,并将其解释为意味着该目录对该用户是安全的。这样,您只会弹出一个密码对话框,如果他们有一个有效的用户名和密码,浏览器会记住它以进行图像检索。

答案 1 :(得分:0)

听起来你可能正在构建一层一层的代码来修复它缺乏设计或过程的代码。

如果您从同一目录中获取每个图像的用户名 - 密码对话框,我最初怀疑:

  1. htaccess在某种程度上错误配置。你能告诉我们你有什么吗?
  2. 用户代理未发送授权标头。查看HTTP请求以验证您是否看到Authorization标头。另请查看响应状态。是401还是403?
  3. 如果您尝试访问不同路径的资源,您是否为每个文件夹使用不同的域?凭证仅适用于提出挑战的领域。如果你访问另一个领域,你必须重新开始。你是如何在你的htaccess中指定的呢?

    其他一些可以帮助我们的事情:

    • 您使用的是哪种身份验证?基本,摘要,别的吗?
    • 您使用的是自定义授权处理程序吗?