我最近偶然发现了这篇关于保护 Web API 端点的文章。
如果我使用 SSL,加密标头中的用户字符串有什么好处吗?如果我将用户密钥 (Id) 包含为明文而不是密文,会有什么风险?
我最近偶然发现了这篇关于保护 Web API 端点的文章。
如果我使用 SSL,加密标头中的用户字符串有什么好处吗?如果我将用户密钥 (Id) 包含为明文而不是密文,会有什么风险?
TLS 是传输级安全性。即,在数据到达传输之前和之后,数据不受 TLS 保护。如果您的数据是长期的和/或您将它们保存在传输会话期间以外的其他地方,那么将它们加密(然后尽可能加密传输)可能是有意义的。如果您的数据生命周期很短并且数据仅在传输会话期间才有意义,那么除了 TLS 之外加密数据没有多大意义。
这篇文章的作者基本上是将用户标识符和用户机密的概念结合到一个单一的密码令牌中。如果您选择以明文形式发送用户标识符,则该用户标识符必须保密(就像令牌必须保密一样)。只要保持这种保密性,使用令牌就没有任何优势。
请注意,该系统似乎并不像所展示的那样非常安全。如果攻击者可以猜出一个有效的用户标识符,那么他们就可以生成一个有效的令牌。作者基本上是在使用 RSA 作为美化的哈希函数。我建议您寻找其他参考。