【问题标题】:Is it possible to read HTTPONLY cookies with jQuery?是否可以使用 jQuery 读取 HTTPONLY cookie?
【发布时间】:2015-03-19 21:42:14
【问题描述】:

有没有办法用 jQuery 读取标有 HTTPONLY 检查的 cookie?我有一个名为 wishlist_cookie 的 cookie。

当我尝试时

$.cookie('wishlist_cookie');

它返回NULL,即使它有一个值。

【问题讨论】:

  • cookie 的域和路径是否与您尝试访问它的那些匹配?您是否正确包含了 cookie 插件?
  • @RoryMcCrossan 是的,它匹配,并且 cookie 插件正在网站上的其他几个地方使用,只是在这个特定的 cookie 上遇到了问题,看了看,发现 httponly 是问题:)

标签: jquery cookies


【解决方案1】:

HttpOnly cookie 不适用于客户端脚本语言,无法获取和设置它。这是链接Set a cookie to HttpOnly via Javascript了解详情。

【讨论】:

  • 这就是我一直在寻找的答案。谢谢
  • 很高兴为您提供帮助。
【解决方案2】:

简短回答:不。

解释: jQuery 只不过是一个扩展的 javascript 库。 HttpOnly 标志告诉客户端脚本是否可以访问/更改 cookie,这是跨站点脚本 (XSS) 攻击的防御机制。如果有任何机会应用程序容易受到 XSS 注入的攻击,攻击者将无法获取一些关键的 cookie 值,例如会话 ID。

【讨论】:

    【解决方案3】:

    你可以这样试试

    var currentSession = [];
    
    
          var session = function readCookie() {
                match = document.cookie.match(new RegExp('TestCookie' + '=([^;]+)'));
                if (match) {
                    var array = match[1].split('&');
                    for (var i = 0; i < array.length; i++) {
                        name = array[i].split('=')[0];
                        value = array[i].split('=')[1];
                        currentSession.push(setCokiesValue(name, value));
                    }
                }
                return currentSession;
    
            };
    

    【讨论】:

    • 这有什么帮助?
    • 试试这个** document.cookie.match(new RegExp('wishlist_cookie'));**
    • @virender 返回 null
    猜你喜欢
    • 2011-12-25
    • 1970-01-01
    • 2019-04-24
    • 2010-11-05
    • 2012-02-24
    • 1970-01-01
    • 2011-09-28
    • 1970-01-01
    • 2019-08-03
    相关资源
    最近更新 更多