我正试图写一个小脚本,让我可以看到与我的网站设置的cookies相关的信息。
我想知道它是否设置了secure
或httpOnly
标志。但到目前为止我还没能做到,我只知道如何获得cookie的名称和值。这是我当前的代码:
r = requests.post('url', data=data, headers=headers)
for (name, cookie) in r.cookies.items():
print name, cookie
到目前为止,这个方法还不错,但我想获得与cookies相关的信息,而不是值本身。Cookie元数据。
我怎样才能做到?
您可以分别从每个cookie中提取信息:
这是因为
r.cookies
是RequestsCookieJar
的一个实例,它扩展自CookieJar
(Python 2:cookielib.CookieJar
,Python 3:http.cookiejar.CookieJar
)。一个CookieJar
有Cookie
个对象。参考资料:
更新: 我还没有找到从
Cookie
对象检索httponly
值的方法。在Python 3中,可以通过字典定义Mosel
对象,它认为httponly
是cookie(https://docs.python.org/3/library/http.cookies.html)的标准属性,但在定义规范RFC2109(https://www.ietf.org/rfc/rfc2109.txt)中找不到对httponly
的任何引用。也就是说,如果
httponly
实际上是一个非标准属性,那么您可以使用以下命令检查cookie是否具有它:cookie.has_nonstandard_attr('httponly')
在Python 3下,我无法从以下位置检索
httpOnly
标志:以及
即使cookie中包含
httpOnly
标志,也返回False
。这也不适用于
httponly
、HttpOnly
等的任何变体。使用@HEADLESS@u 0NE的post,我发现您可以通过查看
cookie.__dict__
中的_rest
字段来检索标志。如果cookie中包含httpOnly
将返回如下内容:
因此,这里有一个小的helper函数来检查cookie是否有
httpOnly
标志。安全标志将自动添加到
cookie
对象中,并可以使用cookie.secure
检索。相关问题 更多 >
编程相关推荐