使用Perl检查cookie

时间:2013-09-12 17:41:26

标签: perl http cookies

我写了一个简短的Perl脚本,列出了网站的当前Cookie,但不知怎的,它报告了Cookie的domainexpires为空。 我做错了什么或者我误解了Cookie背后的机制?

我的最终目标是能够使用按钮删除现有的cookie。

该脚本是实时的here,但如果您首先访问我的blog,那么它可能会有所帮助,因此实际上会设置一些Cookie。这是我的源代码:

use warnings;
use strict;
use CGI::Cookie;

my $table;
my %cookies = CGI::Cookie->fetch;
if ( keys %cookies ) {
        $table .= "<table border=\"3\" cellpadding=\"5\">";
        $table .= "<caption>COOKIES</caption>";
        $table .= "<tr><th>Name</th><th>Domain</th><th>Path</th><th>Expires</th>
                   <th align=\"left\">Value</th></tr>";
        foreach my $cookie ( keys %cookies ) {
                $table .= "<tr>";
                $table .= "<td>$cookie</td>";
                $table .= "<td>" . $cookies{ $cookie }->domain() . "</td>";
                $table .= "<td>" . $cookies{ $cookie }->path . "</td>";
                $table .= "<td>" . $cookies{ $cookie }->expires . "</td>";
                $table .= "<td>" . $cookies{ $cookie }->value . "</td>";
                $table .= "</tr>";
        }
        $table .= "</table>";
}

print "Content-Type: text/html\n\n";
print "<html>\n";
print "<head></head>\n";
print "<body>\n";
print "$table";
print "</body>\n";
print "</html>\n";

无论我安装脚本的各个网站上的各种cookie,输出都是这样的,Domain和Expires总是空的:

+-----------------------------------------------------------------------------------------+                   
| Name          | Domain | Path | Expires | Value                                         |                   
|---------------+--------+------+---------+-----------------------------------------------|
| bb2_screener_ |        | /    |         | 1379007156 2001:980:1b7f:1:a00:27ff:fea6:a2e7 |
+-----------------------------------------------------------------------------------------+

1 个答案:

答案 0 :(得分:1)

浏览器不向服务器提供有关他们发送的cookie的任何元信息。他们甚至没有办法发送它。浏览器发送的内容如下所示:

Cookie: a=b; c=d; e=f