到目前为止我所读到的......
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的文档非常缺乏。我也没有在谷歌上找到任何东西。
也许有人可以帮助我吗?
答案 0 :(得分:0)
由于CGI :: Session的工作方式,使用HTTP :: CryptoCookie没有任何优势。 CryptoCookie的优点是无法通过secreat服务器密钥找出cookie包含的内容。但是,CGI :: Session cookie只包含会话ID,因此加密会话ID无济于事,因为加密会话ID的行为与攻击者角度的会话ID完全相同。