代码之家  ›  专栏  ›  技术社区  ›  Chris

HTTP文件访问和PHP会话

  •  4
  • Chris  · 技术社区  · 14 年前

    如果一个站点已经有了PHP会话来强制对该站点上使用PHP实现的页面进行身份验证/授权,那么相同的逻辑如何强制访问某些文件。

    比如说目录中的文件存储库。所以/var/www/html/是通过身份验证来保护的,但是这个PHP身份验证逻辑不会禁止用户简单地 http://site.com/someDirectory/fileIShouldNotAccess.txt 拉着那个文件。

    如何将PHP会话和身份验证与Apache结合起来以强制执行这种行为?

    3 回复  |  直到 14 年前
        1
  •  2
  •   Community CDub    8 年前

    因为当用户请求非PHP文件时不会调用PHP,所以不能让Apache强制使用PHP的访问保护。您可以在Apache中进行非常粗糙和容易伪造的签入,以确保存在会话ID cookie,但这是高度不安全的。它只是检查cookie是否存在,而不是它是否代表一个有效的会话,或者用户是否被授予了访问权限。

    另一个答案可能会有所帮助。 Using PHP/Apache to restrict access to static files (html, css, img, etc) . 基本上,您通过一个PHP脚本提供所有受保护的内容,而不是提供直接访问。

        2
  •  0
  •   Zak    14 年前

    几个答案:

    1)让您的PHP会话使用HTTP身份验证。然后可以使用.htaccess文件控制目录中的文件访问

    2)使用mod eu rewrite将所有请求重定向到“前控制器”。让前控制器管理是否允许、拒绝或转发到其他控制器模块进行进一步处理。

        3
  •  0
  •   rubayeet    14 年前

    您可以尝试使用PHP进行HTTP身份验证。这个 article 可能会有所帮助。