【问题标题】:How to secure access token beyond XSS and CSRF如何保护 XSS 和 CSRF 之外的访问令牌
【发布时间】:2022-01-28 05:27:36
【问题描述】:

我了解使用 Web 存储的 XSS 漏洞和使用 cookie 的 CSRF 漏洞。因此,我将访问令牌存储在内存中,并且为了持久性,我在 cookie 中有一个刷新令牌,当我们丢失它时,我用它来静默刷新我的访问令牌。我对 XSS 和 CSRF 威胁感觉好一些... 但是我们如何从数据包嗅探器中保护令牌?数据包嗅探器会在请求中找到令牌。我看到很多关于 XSS 和 CSRF 的讨论,但是我们如何保护数据包嗅探器的安全,还有更多我们通常不会想到的威胁吗? p>

【问题讨论】:

  • HTTPS 不足以加密来自数据包嗅探器的数据吗?
  • 我真的不确定,但我在 Azure 门户中搞砸时通过 HTTPS 做了一些事情 - 我让 Fiddler 运行。我可以从 Fiddler 中清楚地看到标头中的访问令牌。我希望有更多知识的人可以帮助我理解这一点。我怀疑有人会说“如果他们在你的网络上,那么与远程 javascript 注入或 CSRF 相比,这是一个更严重的漏洞,你会期望更大的曝光率”。但是,如果我们能做到这一点,那么 HTTPS 的意义何在?我的知识存在差距。
  • 添加了一个希望对您有所帮助的答案

标签: security oauth-2.0 openid-connect access-token packet-sniffers


【解决方案1】:

您使用 HTTPS 来防御数据包嗅探器。

除非将内置根证书的 fiddler 添加到发出请求的浏览器或客户端,否则 Fiddler 作为代理将无法解密云中的 HTTPS 流量。

Fiddler 能够解密 HTTPS,因为您已将 Fiddler 根证书添加到您计算机中的受信任存储中。没有这个,就无法建立正确的 HTTPS 连接。

所以,不用担心云端的 Fiddler。

【讨论】:

  • 这是我忘记的关键步骤 - 我将 Fiddler 的根证书添加到我的受信任存储的部分,这就是我可以跟踪这些调用的原因。谢谢
【解决方案2】:

https 提供端到端加密。它由浏览器在应用程序级别实施,因此同一网络上的其他用户不会破坏 https 安全性。

以下是对 ssl 和 https(http over ssl)如何工作的简短说明

SSL:

关键思想是,从数学上讲,您可以生成公钥 A 和私钥 B,如果您使用 A 加密某些内容,则只能使用 B 解密它。 因此,假设服务器 google 有一对公钥 A 和私钥 B。 客户想向谷歌发送一些数据。这个想法是,如果客户端拥有密钥 B,他可以加密他想要发送的数据,并且他不再关心网络威胁,例如中间人钓鱼数据包或数据,因为只有密钥 B(谷歌)的所有者才能解密数据。所以中间的人只会有没有用的加密数据。 请注意,从上面可以清楚地看出,服务器(此处为 google)应保持其私钥不共享,但应分发其公钥,以便客户端可以使用它与服务器进行安全通信(通过加密)。

如何分发公钥?

使用公钥基础设施 (PKI),它是一组用于管理和分发公钥的角色、实体、定义等。

再次简而言之,服务器向证书颁发机构 (CA) 请求证书。该证书包含有关服务器的信息(名称、IP 等)以及为该服务器生成的公钥和私钥(注意这里有几个过程服务器可能会请求生成密钥,其中一个是服务器生成私钥和 CA 只负责生成公钥)。

最后,浏览器内置了一个受信任的CA列表,这样chrome等浏览器就可以去获取google的公钥A,并用它来加密要发送给google的数据。

以上是 ssl 通信协议的工作原理(ssl 证书)。 Ssl 只是一种提供安全通信的协议。它不提供路由和网络功能。

https:

Https 基本上是 HTTP 连接,它使用 SSL 提供保护的数据。 这意味着 SSL 加密数据将使用 HTTP 等协议进行路由以进行通信。

【讨论】:

    猜你喜欢
    • 2023-03-11
    • 1970-01-01
    • 2020-07-25
    • 2015-10-15
    • 2013-07-20
    • 2019-08-25
    • 2014-06-24
    • 1970-01-01
    • 2014-09-01
    相关资源
    最近更新 更多