有効期限が切れているCookieが削除されない

Eri 40 評価のポイント
2024-11-01T01:43:04.1966667+00:00

有効期限(max-age)を設定した情報をCookieへ保存する処理をJavaScriptで以下のように実装しています。しかし、Microsoft Edgeでは有効期限を経過しても Cookieが削除されません。削除されない原因を教えてください。
以下のようなテスト用のhtmlを作成して、サーバを介して、表示しました。

<html> 
<head> 
  <script> 
    function start_data(){ 
      document.cookie = 'testdata=bcd;max-age=61'; 
      tmrId = setInterval(check_data,1000); 
    } 
     
    function check_data(){ 
      let screenLog = document.getElementById('abc'); 
      let allcookies = document.cookie; 
      let position = allcookies.indexOf('testdata='); 
      if( position != -1 ){ 
        screenLog.innerText = document.cookie; 
      }else{ 
        screenLog.innerText = 'none'; 
      }
    }      
      window.addEventListener("pageshow", start_data); 
  </script> 
</head> 
<body> 
  <p id="abc">data</p>  
</body> 
</html>

有効期間を61秒に設定し、1秒ごとにCookieに保存した情報をを取得し、 情報が削除された場合に通知しています。しかし、62秒経過してもCookieへ保存した情報が削除されません。 10分経過しても削除されません。Edgeの管理者ツールを起動すると、管理者ツールを起動したタイミングで Cookieの情報が削除されました。
検証したEdgeのバージョンはMicrosoft  Edge130.0.2849.56です。2023年12月時点のEdgeではCookieの情報は削除されていましたが、2024年1月から削除されなくなりました。Google Chromeでも同じ事象でしたが、FireFoxの場合は有効期間を経過するとCookieが削除されました。

Microsoft Edge
Microsoft Edge
プライバシー、学習、アクセシビリティ ツールを提供する Microsoft クロス プラットフォーム Web ブラウザー。
32 件の質問
{count} 件の投票

承認済みの回答
  1. SurferOnWww 3,796 評価のポイント
    2024-11-01T04:58:58.6766667+00:00

    ブラウザに有効期限付きで設定されたクッキーが削除されるタイミングは、有効期限が切れたあとで要求をかけた時点ではないのでしょうか?

    私の知る限りの話ですが、Microsoft のドキュメント Deleting Cookies に、

    "When the browser checks the cookie's expiration, the browser will discard the now-outdated cookie."

    と書いてあります。

    で、その When と言うのはいつかですが、別の Microsoft のドキュメント How to: Delete a Cookie に、

    "The next time a user makes a request to a page within the domain or path that set the cookie, the browser will determine that the cookie has expired and remove it."

    と書いてあるのが上の根拠です。

    上記はかなり古いドキュメントですし、ブラウザによって実装が異なって、質問者さんが行ったようなスクリプトで読みに行ったときに上に書いた "When the browser checks the cookie's expiration, the browser will discard the now-outdated cookie." を行うブラウザがあるのかもしれないことは否定できませんが。


0 件の追加の回答

並べ替え方法: 最も役に立つ

お客様の回答

回答は、質問作成者が [承諾された回答] としてマークできます。これは、ユーザーが回答が作成者の問題を解決したことを知るのに役立ちます。