HTTP授权头-Bearer令牌安全

5
我正在构建一个API,将被Web和移动平台使用。我希望得到一些帮助和建议来改进我的令牌授权。
身份验证: 目前的身份验证非常简单。我假设发送的凭据是正确的: 1. 将电子邮件和密码发送到API端点。 2. 存储具有过期日期的用户令牌。 3. 回复客户端以用户授权令牌。
授权: 然后,任何其他操作授权包括: 1. 发送授权承载“token”头。 2. 决定是否允许令牌所有者执行该操作。 3. 完成操作。
问题: 我的担忧是,如果任何人审查请求标头,令牌就很容易被发现。这将允许用户从任何rest客户端执行任何有害请求。大多数可能故意破坏的请求在应用程序上下文中完全有效。因此,通过请求参数过滤它们不容易。
可能的解决方法: 我一直在考虑发送以下内容: 1. 用户授权令牌 2. 发送日期或任何其他参数 3. 哈希(令牌,其他参数)
在服务器上,我将逐个比较每个参数,然后再加密哈希。因此,如果有人使用不同的日期发送相同的哈希值,它可以轻松地被检测到是入侵者。
你有什么其他建议可以使通信更安全吗?
2个回答

2
您正在考虑的日期和哈希方案对基本对手没有任何安全性增加。令牌的过期应该在服务器端的数据库中进行管理。
Oauth2 的威胁模型告诉您如何保护 第4.6.1节 中的令牌。

令牌的生命周期和客户端标识已经涵盖在内了。按照这些说明,启用SSL加密应该足够了吗? - Maximiliano Ejberowicz
1
你绝对、肯定需要TLS(SSL)。没有它,你无法安全地进行任何操作。 - TheGreatContini

0
在网络上可见的令牌必须将IP地址和用户代理(网站的情况下)加密在其中。这样,即使有人拥有您的令牌,他们也无法通过除相同的IP地址和浏览器之外的任何其他方式发送它。

我认为那并不有用。我试图避免来自任何来源的攻击,在这种情况下,该IP仍将被允许发出请求。 - Maximiliano Ejberowicz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接