用于HTTP身份验证的简单PHP类


Simple PHP class for HTTP auth

我有几个用PHP编写的小型web应用程序,我只能自己使用。在我的服务器上,有一个/secure目录,我可以在其中使用.htaccess文件进行访问控制。应用程序本身根本没有任何访问控制。

现在我想把它们移到另一个使用Lighttpd运行的服务器上,在那里不能使用.htaccess文件,您需要是管理员才能为目录设置HTTP身份验证。所以我想在我的应用程序中加入HTTP身份验证。我打算构建一个小类,用于读取INI样式的文件,并通过HTTP基本身份验证进行查询。

这是一个好的解决方案吗?有这方面的课程吗?

有一次我为Zend Framework写了一个超级简单的FrontPlugin,修改它会很容易:)

class MM_FrontPlugin_DevelopmentAccess extends Zend_Controller_Plugin_ErrorHandler {
    public function dispatchLoopStartup(Zend_Controller_Request_Abstract $request) {
        if(! isset($_SESSION['_devAccessPlugin'])) { // auth here instead of .htaccess
            if (! isset($_SERVER['PHP_AUTH_USER']))
                $this->sendAuthHeaders();
            else {
                if($_SERVER['PHP_AUTH_USER'] == 'dev' AND $_SERVER['PHP_AUTH_PW'] == 'ilikecheesecake')
                    $_SESSION['_devAccessPlugin'] = true;
                else
                    $this->sendAuthHeaders();
            }
        }
    }
    private function sendAuthHeaders() {
        header('WWW-Authenticate: Basic realm="Development zone, gtfo"');
        header('HTTP/1.0 401 Unauthorized');
        exit;
    }
}