2

これは簡単に聞こえるかもしれませんが、解決策を見つけることができませんでした。最新バージョンの CI を使用して Web サイト フレームワークを構築しています。セッションを使用して、ユーザーが特定のページにアクセスできるようにするためのアクセス情報を保存しています。これは、Firefox、Chrome、Safari、およびバージョン IE 9 以下で問題なく動作します。ただし、IE10 では、フレームワーク内でページを変更すると、セッションが自動的に設定解除されます。たとえば、ダッシュボードでリンクをクリックして localhost/sitename/admin/settings に移動すると、IE10 によってすべてのセッション情報が破棄され、ログアウトされてログイン ページにリダイレクトされます。sess_cookie_name を cisessions に変更しようとしましたが (これは他の回答で見ました)、効果はありませんでした。

他の誰かがこの問題に遭遇したか、または有効な解決策を知っていますか?

前もって感謝します。

編集:

これを投稿するのを待つべきでした:)

さらに掘り下げた後に解決策を見つけ、

$config['sess_cookie_name']  = 'cisession';
$config['sess_match_useragent'] = FALSE;

新しい質問ですが、sess_match_useragent は CI セキュリティの目的で絶対に重要ですか、それともすべてのブラウザーでオフのままにしておくことができますか?

4

1 に答える 1

0

多くの要因が関係しているため、これは客観的かつ完全に答えるのが難しい質問です。

セッション検証の一部としてユーザー エージェントを含めると、セッション ハイジャックの可能性が減るので便利です。ただし、次の点を考慮してください。

  1. セキュリティの観点から、使用するsess_match_ipことで同等またはそれ以上の効果が得られますか? sess_match_useragentIP を一致させることにより、攻撃者は同じ IP を合法的に使用するか、サーバーにアクセスするときにそれをスプーフィングしようとする必要があります。ユーザー エージェントの検証は非常に簡単にスプーフィングできますが、IP スプーフィングは非常に難しく、ユーザーのネットワークを有効にするにはセキュリティを侵害する必要があります (たとえば、同じネットワーク、ローカル ネットワーク、または同じコンピューター上の別の個人)。

  2. データを安全に送信するために SSL 暗号化を使用していますか? そうでない場合、仲介者の攻撃により、ユーザー エージェントのチェックに関係なく、アプリケーションが悪用される可能性があると考えられますか? クライアントは暗号化なしでサーバーと通信するため、HTTP リクエスト全体を取り出し、操作し、再生することができます。IP チェックを有効にすると、これはさらに難しくなります。

  3. セキュリティを扱うとき、ブラウザごとに異なるサーバー側の動作が本当に必要ですか? 現在は重要ではないように思われるかもしれませんが、この種の問題が他のブラウザの将来のリリースにも影響を与える可能性があることは完全に考えられます (または、IE の将来のリビジョンで「修正」するために元に戻されます)。エンジニアリングは時間をかける価値のあるソリューションですか?

これを念頭に置いて、私の個人的な意見は、すべてのブラウザーで完全にオフにすることです. Internet Explorer は依然としてブラウザー市場でかなりのシェアを占めており、ブラウザーごとの修正プログラムを作成しない限り、実装する価値はないようです。これは、より基本的なエクスプロイトと IP マッチングの可用性に照らして、セキュリティ上の利点が比較的小さいことを考えると特に当てはまります。

于 2013-01-25T19:46:47.313 に答える