【问题标题】:Remove the Identity Server Cookie in Browser using Javascript使用 Javascript 删除浏览器中的身份服务器 Cookie
【发布时间】:2018-01-21 22:53:01
【问题描述】:

我正在使用 Identity Server 进行单点登录,我想从适当的客户端应用程序中使用 JavaScript 手动删除 Identity Server Cookie。

我参考了很多教程,但没有人为我的要求提供任何解决方案。

我将身份服务器部署在 https://localhost:2025 中,并将客户端 UI 部署在 http://localhost:3000

我需要删除下图中https://localhost:2025下显示的以下Cookie。

我尝试了很多堆栈溢出问题,其中我列出了一些供您参考。

Clearing all cookies with JavaScript

【问题讨论】:

  • 在 javascript 中你不能触摸 Http cookie - 你甚至在 javascript 中都看不到它们 - 它们只能由服务器清除 - 这就是它们被称为 Http cookie 的原因
  • @JaromandaX - 但如果我使用 Ctrl + Shift + Del 正在删除 Cookie...
  • 什么是“Ctrl + Shift + Del” - 它与“客户端应用程序”中的代码有什么关系
  • 哦,“ctrl + shift + Del”是浏览器功能,而不是网页可访问功能-您需要了解网页对浏览器所做的所有内容的访问权限不同-它被称为“安全”
  • @JaromandaX - 感谢您的帮助...

标签: javascript cookies session-cookies identityserver3 httpcookie


【解决方案1】:

如果 cookie 是通过服务器发出的 HttpOnly flag 发出的,您将无法从客户端访问或修改其值:

客户端 API 无法访问 HttpOnly cookie,例如 JavaScript。此限制消除了通过以下方式窃取 cookie 的威胁 跨站点脚本(XSS)。但是,cookie 仍然容易受到 跨站点跟踪 (XST) 和跨站点请求伪造 (XSRF) 攻击。通过添加 HttpOnly 为 cookie 赋予此特性 标记到 cookie。

从提供的屏幕截图看来,您似乎只能从 javascript 访问 idsvr.session cookie,因为它没有标记为 HTTP。

作为一种解决方法,您可以对某个服务器端端点进行 AJAX 调用,该端点将清除所有 cookie,因为它可以访问它们。

【讨论】:

  • 能否请您帮助我如何删除idsvr.session。因为我尝试了上述方法,但没有删除任何内容。
  • 试试这个:document.cookie = 'idsvr.session=;expires=Thu, 01 Jan 1970 00:00:01 GMT;'。执行此代码后,请不要忘记重新加载页面以使更改反映在 Chrome 开发人员工具栏中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-07
  • 2010-11-19
  • 2011-02-18
  • 1970-01-01
  • 2021-07-27
相关资源
最近更新 更多