假设我不使用 SSL,而是在 HTTP header 中发送 token 。 token 包含用户 ID 并已加密。
我可以想象中间人攻击者可以获取 token 并使用它。如果我使用 SSL,它应该足够安全吗?但是如果我不使用 SSL...
我能否向 token 添加一些内容,例如用户的 IP,以便我可以检查 token 中的请求 IP 和加密 IP 是否相同?
中间人攻击者能否伪造受害者的 IP 地址?生成 token 时是否可以使用任何其他用户相关信息?
谢谢!
最佳答案
Can the man-in-the-middle attacker (MITM) fake the IP address of the victim?
既然您将可能的攻击描述为“中间人”,是的,攻击者可以伪造受害者的 IP 地址。
Can I use any other user related information when generating the token?
当然,让用户生成一个永远不会以明文形式发送的随机数。最好确保服务器也做同样的事情,这样中间人攻击者就不能只是重播旧请求。用户如何确定他正在与真实服务器而不是攻击者进行通信?最好用证书证明服务器的身份。
在设计可抵御中间人攻击的安全协议(protocol)时,会出现许多此类问题。如果您解决了所有这些问题,您可能会想到与 SSL 非常相似的东西。对于许多开发人员来说,不值得花时间构建自己的安全传输协议(protocol)。
关于Api Token认证如何避免中间人,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24494911/