【问题标题】:Is there a way in Django to test if a Cookie sent in request.META or request.COOKIES is httpOnly?Django 中有没有办法测试在 request.META 或 request.COOKIES 中发送的 Cookie 是否为 httpOnly?
【发布时间】:2020-07-16 12:23:55
【问题描述】:

正如标题所暗示的,我认为这在 Django 中是不可能的:如果写作是最新的,但是否有可能检测到在 request.HEADERS 中发送的 cookie 是否是 httpOnly

【问题讨论】:

    标签: django http cookies request http-headers


    【解决方案1】:

    例如,您可以使用 OWASP ZAPDetectify 来检查 cookie 是否在没有 HttpOnly 标志的情况下设置。

    您是否也忘记了在 Django 中,您可以通过在 settings.py 中设置为 True 来利用某些设置,例如

    【讨论】:

    • 嘿 @Tiago 谢谢你考虑的答案,但是,我更希望能够测试一个 cookie 是否可以测试 httpOnly 一旦它被发送回服务器(在@ 987654326@).
    【解决方案2】:

    没有。 HttpOnlySet-Cookie response 标头的指令。 Cookie request 标头中没有任何内容表明这一点。这是关于 HTTP 的事实,而不是 Django 的限制。

    【讨论】:

    • 我是这么认为的。似乎如果我们无法测试是否以如下方式创建了 cookie:import requestscookies = {'sessionid': '17ab96bd8ffbe8ca58a78657a918558'}r = requests.post('http://example.com', cookies=cookies),那么我没有真正的 100% 保护网站的方法。也就是说,我传给客户端的cookie是httpOnly,但是如果我不能测试它是httpOnly,反过来,我就无法判断它是否被修改了。
    • @MichealJ.Roberts:HttpOnly 并非旨在解决该威胁向量,它只是为了阻止客户端访问 cookie。服务器不需要这种保护,因为它们已经有保护 cookie 的方法(例如,难以置信的长会话 id、安全消息摘要等)。 HttpOnly 不会真正帮助他们;如果恶意行为者知道如何伪造有效的会话 ID,则他们不需要使用合作浏览器;他们可以自己构造请求。
    猜你喜欢
    • 2023-03-31
    • 2011-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-18
    • 1970-01-01
    • 2016-11-22
    • 1970-01-01
    相关资源
    最近更新 更多