2009-06-29 4 views
1

私はかなり一般的な認証方式を使用するPHPサイトを持っています。IEセッションCookieの最近の変更はありますか?

  • ログイン領域全体にはsslが必要です。
  • ユーザーはユーザー名とパスワードを入力します。ユーザー名とパスワードが一致するとセッションが開始され、値が設定されます。
  • 認証が必要なページにアクセスしようとすると、その値がセッションに存在するかどうかを確認し、そうでない場合はログインページに転送します。

我々は常に、しかし、彼らは最近

をセッションクッキーを使用するように設定するか、彼らは前方のページをstroringキャッシュに問題がある、などされていないためにトラブルlogginを持っている少数の人々を得ます私たちはログインできないIEを持つ多くの人がいました。セッションCookieの設定を修正しキャッシュをクリアしても問題はありませんが、同じコンピュータでfirefox/operaを使用するとログインできます。私はそれがIEの問題だと確信していますが、間には何もありません。

セッションクッキーに影響する最近のIE 7の変更について知っている人はいますか?

更新:

私は最近)(session_regenerate_idを実装し、ユーザが使用される既存のセッションを有していてもよくなりましたいくつかの事情があるとして、ログイン後すぐに呼び出すが、それはかなりのでした時間前。

+0

サーバーまたはコードの設定を最近変更しましたか?あなたが共有ホスティングをしている場合、時には彼らはあなたにもあなたに話すことなく、ものを変更します。 –

答えて

3

私の最初のステップは、FirefoxではなくIEでログインできるユーザーを見つけて、両方に対してFiddlerを実行して、ログインプロセスのHTTP要求/応答の違いを確認することです。それは、少なくとも、あなたにどこを見るかについてのよりよい考えを与えるはずです。

0

私は何も聞いていません。しかし、これはまさに私が私のすべての公共プロジェクトでクッキーレスセッションを使用するように切り替えた理由です。 ASP.Netにはこれが組み込まれていると思いますが、独自の実装を使用することを好みます。クエリ文字列sessionidパラメータをページ間で渡し、それをDBレコードや他のデータストアに結び付けることは、はるかに信頼性が高い。

+0

代わりに何を使うのですか? –

+0

投稿を編集しました。上記を参照。 –

+0

あなたは本当にそれをやってセキュリティを妥協しています。セッションIDはプレーンテキストのパスワードのように扱われなければなりません。なぜなら、セッションがアクティブな間は、基本的にはそのように動作するからです。クエリ文字列に入れると、キャッシュ、プロキシサーバー、ブラウザの履歴、ユーザーのコピー/貼り付けをフォーラムにリンクするなど、すべての種類の公共の場所に保存されます。彼らはいくつかのユーザーのアカウントが妥協するよりも、自発的にクッキーを無効にするからです。 –

1

IEのセキュリティ設定が強化されている場合(特に企業環境で一般的です)、ログインしているページがフレームまたはiframe内にある場合は、Cookieが保存されない可能性があります。そうであれば、P3PポリシーのHTTPヘッダーを設定するだけです。 Here's the best description that I could find on how to implement them.

+0

うーん、これは、p3pヘッダーがないので、これかもしれません。私はそれを実装し、それが役立つかどうかを見てみましょう。 – Eli

関連する問題