CGI :: Session和HTTP:用于登录的CryptoCookie(Perl)

时间:2014-01-10 11:50:36

标签: perl cookies cgi session-cookies crypt

到目前为止我所读到的......

CGI :: Session(http://metacpan.org/pod/CGI::Session)似乎是使用Perl进行会话管理的首选方式。它提供了广泛的教程。

HTTP :: CryptoCookie相对较少使用和已知。

我可以通过这个简单的代码使用CGI :: Session设置cookie:

#Session 
my $cgi = CGI->new;
$CGI::DISABLE_UPLOADS = 1;          # Disable uploads
$CGI::POST_MAX        = 512 * 1024; # limit posts to 512K max

my $session = CGI::Session->new('driver:mysql', undef,
    {
        TableName=>'database',
        IdColName=>'id',
        DataColName=>'sessionvalue',
        Handle=>$dbh,
    });

$session->expire('+1y');

print $session->header();    


$session->flush();

我没有在CGI :: Session的源代码中看到密码学的强烈迹象,所以我有点担心。

我正在阅读cpan教程,请注意这一行:

"默认情况下,CGI :: Session使用标准CGI来解析查询和cookie。"

它让我思考,我可以使用HTTP :: Cryptocookie吗?而不是标准的CGI,通过发送加密的cookie,而不是标准的cookie,使我的登录脚本更安全?但有关HTTP :: Cryptocookie的文档非常缺乏。我也没有在谷歌上找到任何东西。

也许有人可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

由于CGI :: Session的工作方式,使用HTTP :: CryptoCookie没有任何优势。 CryptoCookie的优点是无法通过secreat服务器密钥找出cookie包含的内容。但是,CGI :: Session cookie只包含会话ID,因此加密会话ID无济于事,因为加密会话ID的行为与攻击者角度的会话ID完全相同。