CryptoJS 具有从消息和 key 创建 HMAC 的功能。
考虑到 key 必须存储在部署在客户端的 JavaScript 源代码中,这如何保证安全?
任何人都可以拿到 key ,并以 API 原始客户端的身份向服务器发出类似的请求。 “身份”不正是HMAC要解决的问题吗?
总而言之,我不明白客户端 JS 中 HMAC 的用途,因为 key 无法保密。
是否有在 JavaScript 中计算 HMAC 的用例?
最佳答案
JavaScript 现在具有 WebRTC,两个客户端可以进行点对点通信,这将是客户端可以生成和使用自己的“ secret ”的场景。
在某些情况下,客户端 -> 服务器也可以使用。如果您的服务器“动态”提供 JavaScript,那么它可以根据客户端当前 session /登录插入“ secret ”。假设您使用的是 HTTPS(如果不是,可能会有中间人窃取“ secret ”),那么假设与使用该特定“ secret ”签名的服务器(即使是通过不安全的 HTTP)进行的通信仅属于那个客户。
关于javascript - 客户端 JavaScript 中的 HMAC 和身份欺骗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18105285/