我有几个用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;
}
}