我正在使用 CGI.pm 来写出 cookie。现在在用户使用我的网站的过程中,其他 cookie 被添加到“test.com”cookie 集中,(如浏览器历史记录所示)
但现在我想注销用户,并“清理”PC。由于我不知道用户使用了哪些脚本,因此我无法预见 PC 上的 cookie 是什么。
简而言之,它有一种方法可以将“test.com”的所有 cookie 读回脚本中,这样我就可以在 1 秒内再次打印出来,(有效地“删除”它们)**我知道你可以阅读cookie 回到 $xyz=cookie('$name') ... 但是如何创建包含 $name 变量的数组以便循环遍历它?该脚本还将在“test.com”上运行,因此跨站点策略不是问题
+++++ brian d foy在下面添加了部分答案。所以这就是我设想的代码可能被串在一起的方式。
use CGI::Cookie;
%cookies = CGI::Cookie->fetch;
for (keys %cookies) {
$del_cookie.="cookie(-NAME=>'$cookies[$_]',-PATH=>'/',-EXPIRES=>'+1s');";
}
print header(-cookie=>[$del_cookie]);
我想知道脚本如何识别域。似乎该脚本足够智能,可以仅加载正在执行该脚本的域的 cookie。(现在我要找出为什么 Firefox 不删除过期的 cookie!刚刚在我的测试域中发现了一些在 1 月 29 日至 31 日过期的列表,起初我想知道为什么它们没有出现在我的 cookie 列表中! )