7

デュアル Set-Cookie を発行している Magento アプリケーションがあります。ヘッダーは次のとおりです。

  HTTP/1.1 200 OK
  Date: Wed, 18 Apr 2012 21:04:28 GMT
  Server: Apache/2.2.3 (CentOS)
  X-Powered-By: PHP/5.2.10
  Set-Cookie: frontend=iti6c00cdm6cc79hfl1pl9pq52; expires=Wed, 18-Apr-2012 22:04:28 GMT; path=/
  Expires: Thu, 19 Nov 1981 08:52:00 GMT
  Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
  Pragma: no-cache
  Set-Cookie: frontend=iti6c00cdm6cc79hfl1pl9pq52; expires=Wed, 18-Apr-2012 22:04:28 GMT; path=/; domain=**example.com**
  Connection: close
  Transfer-Encoding: chunked
  Content-Type: text/html; charset=UTF-8

状況によっては、ログイン後に 2 番目の Cookie が frontend=deleted に設定されます。私の読書から、2 つの frontend= Cookie は「問題」ではないように見えます。これは標準の Magento の動作です。仕様を読んだところ、スコープ/仕様が同じ場合、2 番目の frontend= Cookie が最初の Cookie を上書きします。

この問題を掘り下げて、2 番目の frontend= Cookie が最初の Cookie のように動作しない理由を確認できるアイデアはありますか?

Magento版はverのエンタープライズ版です。1.9.0.0

関連する質問

4

2 に答える 2

4

これは、セッションの検証チェックが失敗した場合に発生します。Cookie は「削除された」値と過去の有効期限でクリアされます。

次の情報は、セッションを検証するために Magento によってチェックされます。

  • サーバーに接続しているクライアントの IP アドレス
  • 「経由」HTTP ヘッダー
  • 「X-Forwarded-For」ヘッダー
  • 「User-Agent」ヘッダー

これらの情報の 1 つ (または複数) が同じセッション ID の要求中に変更された場合、セッションは破棄され、Cookie は前述の方法でクリアされ、サーバーはリダイレクト ヘッダーをホームページに送信します。

Magento 管理パネルで検証する情報を変更するには、[システム] > [構成] > [Web] に移動します。ただし、すべてのチェックをオフにしないでください。これにより、セッション ハイジャックが可能になります。

于 2014-12-12T13:58:22.677 に答える
0

fronten cookie をオーバーライドしますか...その場合は、まず cookie を破棄してから、Magento メソッドを使用してリセットしてください。

Mage::getModel('core/cookie')->set('frontend', $session->getCustomer()->getId(), 100000*24*3600);

于 2012-04-25T13:03:04.343 に答える