【问题标题】:How to know if a cookie is HttpOnly server side如何知道 cookie 是否是 HttpOnly 服务器端
【发布时间】:2017-08-16 13:08:12
【问题描述】:

我有一个使用 Spring Boot 的应用程序,我在其中设置了 HttpOnly cookie。在浏览器中,我可以检查它并看到它设置为 HttpOnly。有了这个,我避免了客户端在其上使用 javascript。

但是,在读取 cookie 时,我是否必须在服务器端做任何事情?据我了解,我不能使用 javascript 来读取 cookie,但我仍然可以使用浏览器插件创建一个与 HttpOnly 具有相同名称和值的非 HttpOnly cookie。在服务器端,我不需要验证 cookie 以及它是否是 HttpOnly 吗?

我已经尝试通过从请求中获取 cookie 列表来做到这一点,但似乎它们都将不同的字段设置为默认值。我可以读取的唯一字段是 cookie 的名称和值。

这是预期的行为吗?

【问题讨论】:

    标签: java spring-boot cookie-httponly


    【解决方案1】:

    这确实是指定的行为。

    Set-Cookie 标头将HttpOnly 等信息传输到客户端。但是从客户端到服务器的调用使用Cookie 标头,它只包括cookie 名称和值(但没有更多信息)。因此,服务器不能仅从Cookie 标头中获取此信息。它根本不存在。

    这是在RFC 6265 „HTTP State Management Mechanism“ in Section 5.4 „The Cookie Header“中指定的:

       4.  Serialize the cookie-list into a cookie-string by processing each
           cookie in the cookie-list in order:
    
           1.  Output the cookie's name, the %x3D ("=") character, and the
               cookie's value.
    
           2.  If there is an unprocessed cookie in the cookie-list, output
               the characters %x3B and %x20 ("; ").
    

    由于缺少信息,因此通常设置为默认值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-02-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-07
      • 2022-01-07
      • 2015-07-26
      相关资源
      最近更新 更多