Apache - 在目录导航上设置超时

时间:2014-05-13 13:18:51

标签: php apache http permissions httpd.conf

用户登录该网站,并且拥有适当的权限,允许访问网页policies/editor.php,在此页面中,他有一个访问目录的链接:/home/account/app/Ui/policies/gray_list

好处:应用程序在内部管理会话,一旦用户注销或会话超时到期,用户就被定向到登录页面。 糟糕的是,如果用户在目录中打开了一个选项卡,即policies/gray_list/,他可以在那个到期之后停留在那里,所以即使用户从站点注销,他仍然可以导航到该目录。

如何使会话过期(我假设使用apache配置)?实际上,我想要的是,一旦会话超时,用户将至少获得forbidden 403 error,就像他当前尝试直接访问此文件夹而不是policies/editor.php

时获取的那样

我目前的配置:

SetEnvIf Referer "policies/editor.php" editorpage
SetEnvIf Referer "policies/gray_list/" graylistfolder
<Directory "/home/account/app/Ui/policies/gray_list">
        Options Indexes FollowSymLinks
        IndexIgnore ..
        Order Deny,Allow 
        Deny from all 
        Allow from env=editorpage
        Allow from env=graylistfolder
</Directory>

1 个答案:

答案 0 :(得分:0)

您的会话究竟是如何实施的?如果我们在这里讨论PHP会话 - 那些与Apache默认功能之间没有“简单”连接。

在这种情况下,您最好通过Apache禁用目录内容列表,并使用PHP脚本读取目录内容并将其呈现给用户(通过将PHP脚本设为DirectoryIndex文件,或通过重写目录请求到脚本) - 这样,你可以相应地处理你的会话resp到期。

依靠引用者当然不是真正的“保护”,因为这个值是可选的,也是最容易伪造的。