【问题标题】:Session Cookie secure/httponly会话 Cookie 安全/httponly
【发布时间】:2023-03-12 20:00:01
【问题描述】:

我在互联网上搜索了很长时间,但我的问题没有找到令人满意的答案。

我必须从某个 http 站点获取一个 json 对象。我通过 http 的 get-request 来做到这一点(站点只能通过 http 访问)。该站点使用会话 cookie 进行响应:

设置 Cookie:session_id=95656983e1feaff45a000aa7f2f9093a1ea4b1c3;过期=格林威治标准时间 2018 年 4 月 20 日星期五 14:00:51;仅限http;最大年龄=3600;路径=/;安全

我的第一个问题是,为什么设置了 httponly 和安全标志时,cookie 是通过 http 发送的??

获得 json 对象后,我必须做一些花哨的事情并将 json 对象发送回同一域的其他站点。此站点也只能通过 http 访问。 (我在 python 中使用 python-requests 进行请求,并使用 requests.session() 来处理 cookie,所以没有问题)。当我使用 mitmproxy 查看请求的标头时,我看到没有设置任何 cookie,并且页面响应“我的 COOKIE 是哪里??”

我认为问题出在 httponly 和 sercur 标志上。我只是不知道如何处理它,因为该页面只能通过 http 而不是 https 访问?

【问题讨论】:

    标签: http cookies https http-headers session-cookies


    【解决方案1】:

    Secure 属性指示客户端/浏览器仅在使用安全通道时返回 cookie,但这样的 cookie 可以由应用程序/服务器通过普通 HTTP 设置到客户端/浏览器。您是正确的,安全标志导致了问题,AFAIK 没有办法解决它

    【讨论】:

    • 感谢您的解释。我试图设置一个自己的 cookie,没有使用相同 session_id 的安全和 http only 标记。服务器仍以“WHERE'S MY COOKIE??”响应。我错过了什么吗?
    • 这里可能存在一些域差异。如果您没有明确设置域,客户端解释的有效域可能与您所期望的不同。我认为您可以通过设置显式域来尝试。这个另一个问题可能会有所帮助:stackoverflow.com/questions/1062963/… 另一个很好的链接,用于所有关于 cookie 中的域 mxsasha.eu/blog/2014/03/04/definitive-guide-to-cookie-domains
    猜你喜欢
    • 1970-01-01
    • 2015-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-26
    • 2012-01-11
    • 2018-10-10
    • 1970-01-01
    相关资源
    最近更新 更多