Apache检查用户是否正在浏览其主目录

时间:2019-09-27 00:21:55

标签: environment-variables apache2.4

例如,我有Web服务器的根目录 / var / www / 。和用户的主目录: / var / www / testuser / 。我还设置了基本授权,因此有一个用户名为testuser的用户已成功授权。如何仅通过Web服务器检查测试用户是否正在浏览其主目录?这是我所走的距离:

# Getting "testuser" out of "/testuser/echo.php"
SetEnvIf Request_URI ^/(.*)/ URI_HOME=$1

# Getting base64 encoded part out of Authorization header
SetEnvIf Authorization "^Basic (.*)$" X_HTTP_AUTHORIZATION=$1

# Converting base64 part to plain text, extracting username and comparing it with home directory 
SetEnvIfExpr "tolower(unbase64(%{ENV:X_HTTP_AUTHORIZATION})) == %{ENV:URI_HOME}" USER_IS_IN_HOME_DIR

主要问题是 SetEnvIf 工作时,舞台上没有设置 REMOTE_USER 。因此,我绝对必须从请求中解析 Authorization 标头。我几乎做到了,但是我必须逐列删去一部分才能使比较正确。

我该怎么办?

1 个答案:

答案 0 :(得分:0)

以下似乎有效:

begin

有什么想法可以改进它吗?