0

PHP のセッションを使用する Web サイトのパスワード保護領域にも .htaccess が必要かどうかを知りたいです。私はサイトのパスワード保護領域に慣れていないので、これについて何日も調査を行ってきましたが、まだ混乱しています.

私のクライアントが使用している請求会社は、サイトのユーザーの mysql データベースに新規および更新されたユーザー情報を書き込むことができる特定のフォルダーに配置するスクリプトを提供しています。独自のログイン ページとログアウト ページを使用したいのですが、HTTP 認証では独自のポップアップ ログイン ボックスが使用され、ログアウトするための実際の方法がないことはわかっています。したがって、データベースを使用してユーザー情報を保存しています。

要するに、データベース経由で認証し、PHP でセッションを使用している場合、保護されたフォルダーに .htaccess ファイルが必要ですか?

よろしくお願いします!

4

3 に答える 3

4

いいえ、ありません。.htaccess ファイルは、基本認証へのアクセスを提供します。あなたが話していることは、Web サイトのスクリプトによって処理されます。覚えておく必要がある重要なことは、有効なセッションのページ読み込みを常にチェックし、ログイン ページへのリダイレクトに失敗することです。

于 2013-01-13T22:18:33.367 に答える
1

ディレクトリ内のすべてのファイルがPHPを介して実装されている場合は、htaccessは必要ありません。ただし、それらが保護が必要なディレクトリ内の非phpファイルである場合、それらのファイルは保護されません。ファイルサーバーに画像として保存されている販売チャートなどがある場合、それらを見つけることができた人なら誰でもそれらを見ることができます。

于 2013-01-13T22:27:12.307 に答える
1

REST ベースの認証 (Apache 経由) に関するこの記事を参照してください: http://www.berenddeboer.net/rest/authentication.html

PHPセッションを使用して独自の認証システムを実装する予定であり、mysqlを想定していると述べたように、これを達成するために.htaccessファイルは必要ありません。

これが PHP によるものである限り、私は今でも非常に大幅に変更されたシステムを利用しています

基本的には、セッション内の情報の保存に関連するコントローラー関数のセットをロードするか、データベースに対して保存された情報をチェックする必要があります。

次に、次のようなものを使用して、特定のページへのアクセスを他のすべてのページの前に配置することで制限できます。

if (!userIsLoggedIn())
{
    include "$docRoot/html/main/login.html.php";
    exit();
}

if (!userHasRole('Site Admin'))
{
    $error = 'Only a website administrator may access this page, your ip address has been logged and a notification sent to our support team as this is considered as an unauthorized access attempt.';
    unset($_SESSION['loggedIn']);
    include "$docRoot/html/main/accessdenied.html.php";
    exit();
}

if (!userHasActiveAccount())
{
    $error = 'Sorry but your account has been disabled. For futher information please contact support.';
    unset($_SESSION['loggedIn']);
    include "$docRoot/html/main/accessdenied.html.php";
    exit();
}
于 2013-01-13T23:02:02.227 に答える