1

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

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

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

4

1 回答 1

0

有一次我为此为 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;

    }

}
于 2013-08-23T09:26:29.483 回答