如何在Pylons中使authkit会话cookie为HttpOnly?

2 投票
1 回答
849 浏览
提问于 2025-04-15 13:20

我在用Pylons框架的时候,使用了authkit模块。我发现它设置的会话cookie(叫做authkit)并没有标记为HttpOnly。

有没有简单的方法可以让它变成HttpOnly?(我说的“简单”是指不需要修改authkit的代码。)

1 个回答

2

在authkit的文档里没有说明这个问题,因为它是在Python 2.6版本才开始有效的(详细信息可以查看这里)。不过,如果你使用的是Python 2.6的话,

authkit.cookie.params.httponly = true

在配置中应该可以正常工作,并达到你想要的效果。

authkit内部使用了一个叫做Cookie.SimpleCookie的东西,这就是限制你在authkit.cookie.params.中可以使用的键的原因。在Python 2.5及之前的版本中,只支持标准中定义的键,参考RFC 2109,而在Python 2.6中增加了一个很有用的httponly扩展——这就是authkit能够自动支持它的原因……因为它并没有自己进行检查,而是把所有的检查都交给SimpleCookie来处理。

如果你还在使用Python 2.5或更早的版本,那么要让这个功能正常工作就需要多花点功夫(不是修改authkit,而是需要对Python的Cookie.py进行一些修改,或者更好的是,如果可能的话,从Python 2.6的源代码中安装一个更新版本的Cookie.py,并把它放在sys.path中比Python标准库目录更前面的地方)。

撰写回答