perl - Firefox 不删除过期的 Perl CGI::Cookie cookie

标签 perl cookies https cgi

我正在使用 Firefox 3.6.10 (OS X Intel),浏览器会收集新的 cookie,而不是使旧 cookie 过期(“删除”)。

这些 cookie 是通过 Perl 的 CGICGI::Cookie 模块创建和添加的。

我正在创建并添加一个 cookie,如下所示:

my $myNewCookie = new CGI::Cookie(-name    => "$myCookieName",
                                  -value   => { 'key1' => $value1, 'key2' => $value2 },
                                  -expires => '+8h',
                                  -secure  => 1
        );
print redirect(-URL    => "$hostURL$redirect",
               -cookie => $myNewCookie);

这是我试图让它们过期的方法:

sub clearCookie {                                                                                                                                                                                                                         
    my $myOldCookie = cookie(-name    => "$myCookieName",                                                                                                                                                                                 
                             -value   => '',                                                                                                                                                                                              
                             -expires => '-1d',
                             -secure  => 1);

    print header(-cookie=>$myOldCookie);                                                                                                                                                                                     
    # ...
}

这是发生了什么:

  1. 我运行“addCookie”脚本
  2. 脚本添加cookie
  3. 我运行“clearCookie”脚本
  4. cookie 的有效期不会改变
  5. 我再次运行“addCookie”脚本
  6. 该脚本添加了一个具有较新到期日期的 cookie

我可以继续,Firefox 只会积累更多的 cookie 而不会使它们中的任何一个过期。

我的脚本在当前版本的 Google Chrome 和 Apple Safari 下工作,但 Firefox 似乎不合作。

是否有我遗漏的设置,它会正确地告诉 Firefox 调整我的 cookie 的到期日期?

感谢您的建议。

最佳答案

看起来这是一个 known and frustrating bug使用 Firefox。

关于perl - Firefox 不删除过期的 Perl CGI::Cookie cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4852424/

相关文章:

http - 为什么有时我网站地址栏中的 https 会出现斜线?

ssl - 显示/弹出 SSL 证书信息的最佳方式

regex - 为 CGI 输入域名的 Perl 污染模式导致 “Insecure dependency in eval”

c++ - 在 C++ 中发送 HTML 格式电子邮件的简便方法

.net HttpCookie 类/ session cookie 问题

spring - 如何在独立 Tomcat 中运行的 Spring Boot 应用程序中设置 cookie 名称?

google-chrome - Set-Cookie 在 Chrome 中不起作用

http - 将 URL 中的用户名和密码传递到 `htpasswd` 保护域,它会被加密吗?

Python 相当于 Perl 的 HTTP::Async->next_response

perl - 如何在 Perl 中检查数组的所有元素是否相同?