【问题标题】:Need Cookies value on client side with Httponly attribute true客户端需要 Cookies 值,Httponly 属性为 true
【发布时间】:2012-11-30 22:05:06
【问题描述】:

我们在 web.xml 文件中设置参数httpOnly true 以防止在客户端创建 cookie。 这导致读取 cookie 值。我们使用以下方式读取 GWT 中的 JSESSIONID cookie。

Cookie.getCookie("JSESSIONID");

这返回未定义。如果我在 web.xml 中删除属性 Httponly=true,它工作正常并返回一个 cookie。

任何人都可以建议一种方法来获取带有 HttpOnly true 的 cookie JSESSIONID cookie。

【问题讨论】:

    标签: javascript gwt session-cookies httponly


    【解决方案1】:

    HttpOnly 不是你想的那样。它的唯一目的是告诉浏览器明确将 cookie 公开给脚本,并且只在 HTTP 级别使用它。

    没有什么可以阻止客户端伪造 cookie。有几种方法可以通过所谓的 session fixation 攻击来防止跨站点请求伪造 (CSRF),但 HttpOnly 不是其中之一。 HttpOnly 有助于跨站点脚本 (XSS),因此如果页面包含恶意的第 3 方脚本,它无法读取 cookie 以将其发送到第 3 方服务器 - 可能稍后将其用于 session fixation 攻击,但只有当您的网站容易受到攻击时才有可能——。

    【讨论】:

    • 感谢 HTTPOnly 的详细说明。在我的项目中,像用户这样的功能应该在清除历史记录时注销。但在 STQC 中,需要在 jboss 服务器中启用 HttpOnly 属性。现在我无法实现我的功能,因为由于 httponly,我无法访问 cookie。你能帮我解决这个问题吗?
    • 您可以使用dynamic host page 并让您的服务器以这种方式传递会话ID;这是关于在加载时将特定值从服务器传递到客户端,而不是关于 cookie。
    • 是的,这种方法已经在我的项目中实现了。即jsp-gwt 集成。但是当我在 gwt 应用程序中清除历史记录时,sessionid 没有被删除,因为它现在不是 cookie 的一部分。对吗?那么我怎么知道用户删除了历史记录,我应该将页面重定向到主页?
    猜你喜欢
    • 2021-11-17
    • 1970-01-01
    • 2016-10-23
    • 2013-12-04
    • 1970-01-01
    • 2012-11-02
    • 1970-01-01
    • 2012-11-04
    • 2018-11-28
    相关资源
    最近更新 更多