Api Token认证如何避免中间人

标签 api security rest ssl access-token

假设我不使用 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/

相关文章:

java - 从 GWT 客户端访问非 GWT servlet

linux tcpdump ---如何查找命中数

javascript - 我如何让我的结果连续显示?

asp.net - 使用 PageMethods 验证 Asp.net Ajax 请求的建议

security - 我应该将自签名证书提交给源代码管理吗?

html - Rails - 使用 h() 转义 HTML 并排除特定标签

api - 设置未知属性:yii\web\UrlRule::GET

Facebook 营销 API 见解

c# - 如何将应用程序与第三方 API 解耦以处理停机时间?

c# - 没有从 Razor 页面发送 Http Put