- ベストアンサー
会員制Webサイトのアクセス制限について
- 会員制Webサイトのアクセス制限について、Basic認証以外の方法を探しています。現在のBasic認証ではセキュリティが心配なため、より安全な方法を模索しています。
- Digest認証は使用できないため、独自SSLを取得してログイン認証を暗号化することを考えています。しかし、Basic認証のままでは「ログアウト」がなく、共有PCなどでの利用に問題があります。
- また、PHPでセッションやクッキーを使った認証も検討していますが、Basic認証で使用していたパスワードファイルの流用ができるかどうかが分かりません。解決策や情報があれば教えてください。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
>ログイン用のcgiかページ ログアウトの間違いでした。 401ヘッダ+同じAuthNameで強制的に認証エラーを起こしてリセットできるのですが、ダイアログがでてうっとおしいですよね。 変則的な方法ですがこういうのはいかがですか? ログアウト用のユーザを設定する。logout:logoutとか。 ログアウト用のディレクトリをプライベートエリア内に作り、.htaccessを AuthType Basic AuthUserFile パスワードファイル AuthName "同じAuthName" require user logout とします。適当にログアウト画面の index.html を作ってそのディレクトリに入れます。 プライベートページにログアウトボタンをつけてリンクを https://logout:logout@www.***.com/プライベートエリア/logout/ とします。(SSLの場合) これで違うユーザがセットされてプライベートエリアで再度認証を求められます。 ログアウト用のパスワードファイルは別個に作ったほうがいいでしょう。 同じファイルだと require valid-user のときに解除できないので。 ログアウト用パスワードファイルを自分で作るときは以下をテキストファイルに書いて保存 logout:loNScApf9qjGc
その他の回答 (3)
- thezen5
- ベストアンサー率84% (27/32)
現在のリソースを生かすとしたら、SSL導入でログアウトの機構だけ付ければいいんではないでしょうか? 以下を参考にログイン用のcgiかページを作れそうですが ヘッダー出力で認証を切ってしまう方法 http://shorindo.com/tech/tech0002.html ただできなかったという書き込みも見ましたので、プランBとして AuthNameで初期化する方法 http://blog.y-110.net/log/eid133.html
お礼
回答ありがとうございました。 ログインは専用ページを作ればいいとして、やはりログアウトが問題ですね。 ヘッダーで401を返す方法というのは私も試してみたのですが、最近のブラウザではやはりうまくいかないようです。 別のAuthNameで強引に再認証させて初期化するというのは知りませんでしたが、これはいいアイデアかもしれませんね。試してみます。
- memphis
- ベストアンサー率40% (975/2395)
既にCMSを使っているならMysqlなどのDBは使っていますよね? それならIDとパスワードをDBで管理し、CMSのヘッダテンプレートで 認証とセッション管理の処理を追加すれば手間が少なく済むと思います。
お礼
回答どうもありがとうございました。 MySQLは使っていますが、DB認証をするには専用のApacheモジュールが必要になるのではないかと思いました。 さくらサーバの場合、そのモジュールが入っているかどうかが不明ですし、ユーザー側でモジュールのインストールはできないはずので、DB認証は難しいのではないかと思っていましたが… また、パスワード発行や管理に関しては、現状でもCGIを使用しており、それほど問題とはなっておりません。今回の質問は、今までのパスワードファイルを流用して、セキュリティレベルの向上(認証時の暗号化)と、明示的な「ログイン/ログアウト」システムを構築できないだろうか、という趣旨です。 それから、会員サイト内で使用しているCMS(MTです)は、あくまでもサイト内の一部であり、大半は古いHTMLページ(数千ページ以上)や2ちゃんねる式の掲示板および過去ログなどで構成されています。そのため、すべてのページヘッダにソースを記述するのは難しいと思っています…。
- memphis
- ベストアンサー率40% (975/2395)
会員サイトを運営するなら、CMSとかSNSとかのサイトにしたほうが手間も少ないから、考えてみては? 私の場合、メンバー数は少ないですが 最初からトラブル発生、多くなる事を見越して 掲示板ベースのポータルサイトと、SNSベースのサイトの2つを運営しています。
お礼
どうもありがとうございます。 サイト内の一部はすでにCMSで運営していますが、10年近くの間に溜まった大量のコンテンツを移したり作りかえるようなことは考えておりません。 運営の方法ではなく、ログイン認証を問題としていますので、今回の質問に対する範囲での回答を期待しています。どうぞよろしくお願いいたします。
お礼
なるほど。変則的な方法ですがBASIC認証を使い続けるなら、こういう方法しかないかもしれないですね。 再ログインのダイアログは、できれば避けたいですし。 どうもありがとうございました。