1

ディレクトリを保護し、mysqlデータベースに対してユーザーを認証したいと思います。私はlighttpdを使用していますが、その方法を見つけることができませんでした。出来ますか?

4

1 に答える 1

2

mod_authを使用できます。これが関連するドキュメントページです

データベースに直接アクセスできないため、「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" 
                 )

)
于 2009-09-26T10:55:47.923 に答える