- ベストアンサー
ユーザ認証のあるサービスを社内で利用したときの挙動に関して
インターネット上でユーザ認証のあるサービスを提供しているのですが、ある会社内からアクセスすると他のユーザ(他の社員)のページが表示されてしまうと言われました。これは社内に設置されているプロキシサーバの問題でしょうか?それともサービス提供側のHTTPサーバの設定の問題でしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
No.1です。 >どのようなキャッシュ指定があるのでしょうか? キャッシュの指定はHTTPヘッダに指定する場合とmetaタグ(HTMLの場合のみ)に指定する場合の2種類ありますが、基本的にキャッシュの指定はHTTPヘッダで行います。metaタグでの指定はHTTPヘッダで指定出来ない場合などの補助的な場合で使います(あまりmetaタグが指定されていないのはHTTPヘッダで指定しているからです)。優先順位的には HTTPヘッダ > metaタグ の様になります。 プロキシが見るのはHTTPヘッダですので、metaタグを指定してもあまり効果はありません。まずはHTTPヘッダにキャッシュの指定がされているのかを調べてみると良いと思います。 >Webサーバ(Apache)の設定でできるのでしょうか? ApacheならばHeaderディレクティブで追加出来るはずです。 http://httpd.apache.org/docs/2.0/mod/mod_headers.html#header
その他の回答 (1)
- Bonjin
- ベストアンサー率43% (418/971)
サービス提供側が原因の場合、キャッシュの指定を正しく行っていないか、ユーザの識別方法が適切ではないことが原因ではないかと思います。 キャッシュの指定が正しくなければ、ページのデータがプロキシのキャッシュに入ってしまい、他のユーザがキャッシュの内容を表示させてしまうことが考えられます。 または、ユーザの識別をIPアドレスだけで行っている場合は、プロキシ経由でアクセスしている人全てが同一ユーザと認識されてしまうので他のユーザにも同じ内容が表示されてしまうことも考えられます。 ユーザ側が原因である場合、プロキシの設定ミスやキャッシュ機能のバグか機能不足ではないかと思います。 他のプロキシを利用した環境で同様の問題が起こらなければこちらの可能性が高いと思います。
補足
Bonjinさん、ご回答ありがとうございます。 サービス提供側が原因の場合、キャッシュの指定を正しく行っていないかとありますが、ユーザ認証タイプのWebアプリケーションの場合、どのようなキャッシュ指定があるのでしょうか? メタタグを使って以下のようにしてキャッシュを無効などをするということでしょうか?ただ、この場合、他のユーザ認証のあるサービスを見てみると、指定がないことが多いので、Webサーバ(Apache)の設定でできるのでしょうか? <meta http-equiv="Pragma" content="no-cache"> <meta http-equiv="Cache-Control" content="no-cache"> <meta http-equiv="Expires" content="Thu, 01 Dec 1994 16:00:00 GMT">
お礼
Bonjinさん、度々のご回答ありがとうございます! ApacheではHeaderディレクティブで設定できるのですね。 Apacheの設定を色々見ていたのですが、色々あって、どれを使うのか調べきれていませんでした。 大変参考になりました。ありがとうございました!