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 に答える