使用php脚本保护lighttpd中的目录

时间:2009-09-26 10:48:00

标签: php authentication lighttpd

我想保护目录并根据mysql数据库验证用户身份。我正在使用lighttpd并且无法找到这样做的方法。有可能吗?

1 个答案:

答案 0 :(得分:2)

您可以使用mod_auth,here是相关的文档页面

由于它无法直接访问数据库,我建议使用'htdigest'方法,并从数据库用户重新生成文件。

'htdigest'格式只是:“user:realm:md5(password)”,如页面所述。

从php脚本生成这样的文件应该非常简单。  伪代码:

foreach ($users as $user) {
    // $user['md5pass'] = md5($user['password']);
    $line = sprintf("%s:%s:%s\n", $user['username'], 'protected', $user['md5pass']);
    file_put_contents('htdigest-file', $line, FILE_APPEND);
}


此外,在同一页面中,这是mod_auth的示例lighttpd配置:

auth.backend                   = "htdigest" 
auth.backend.htdigest.userfile = "lighttpd-htdigest.user" 

auth.require = ( "/download/" =>
                 (
                 # method must be either basic or digest
                   "method"  => "digest",
                   "realm"   => "download archiv",
                   "require" => "user=agent007|user=agent008" 
                 ),
                 "/server-info" =>
                 (
                 # limit access to server information
                   "method"  => "digest",
                   "realm"   => "download archiv",
                   "require" => "valid-user" 
                 )

)