我正在为 webapp 制作一个 RESTful API。
因为一旦用户退出浏览器,某些移动浏览器会删除客户端 cookie,所以我使用 local.storage 来存储用户的密钥,该密钥可以发送到 API 以对用户进行身份验证。
鉴于密钥足够长,经常更改,并且所有通信都通过 https 进行,使用 put 或 delete 发送密钥是否安全?我的理解是,如果我使用 get,密钥可能会留在浏览器历史记录中,恶意用户可能会使用它来访问用户帐户。相比之下,邮政更安全。如何放置或删除?
我正在为 webapp 制作一个 RESTful API。
因为一旦用户退出浏览器,某些移动浏览器会删除客户端 cookie,所以我使用 local.storage 来存储用户的密钥,该密钥可以发送到 API 以对用户进行身份验证。
鉴于密钥足够长,经常更改,并且所有通信都通过 https 进行,使用 put 或 delete 发送密钥是否安全?我的理解是,如果我使用 get,密钥可能会留在浏览器历史记录中,恶意用户可能会使用它来访问用户帐户。相比之下,邮政更安全。如何放置或删除?
如果可能,我会通过 HTTP 标头发送密钥;这样,您使用哪种方法都没有关系,无论是 GET、POST、PUT 等。
也可以看看:setRequestHeader()
如果您使用 GET 并将密钥作为参数发送,那么绝对是不安全的。浏览器将缓存 URL,这意味着密钥将在历史记录中可用。为了安全起见,我会将它们放在标题中。
如果您真的对安全感兴趣,尽管您可以使用诸如质询-响应身份验证模式(或此模式的许多变体)之类的东西。我猜你在某种程度上是在正确的轨道上,因为你经常提到你的关键变化。真正的问题是您如何在客户端的第一个实例中获取该密钥(这安全吗?)...