用Javascript保护OAuth
|
我有一个使用OAuth 1.0a对其进行身份验证的应用程序的API。它取代了一个旧的api,该api使用了许多已弃用的自定义构建和大杂烩调用。
众所周知,OAuth 1.0a在(客户端)Javascript中并不安全,因为它依赖于将用户机密保密。由于源始终可见,因此这是不可能的。
我们拥有适用于Chrome,Firefox,IE和Safari的浏览器扩展,以后需要使用此api。这些扩展全部或大部分用Java语言编写,因此存在安全性问题。
这些扩展是内部的,因此可以使用自定义身份验证方法来获取其访问令牌。
我打算实施以下内容:
用户在浏览器中登录网站。
该网站向他们发出带有会话密钥的cookie。
然后,我们的扩展程序获取该cookie,并将其传递给api。
该api验证它是有效的活动会话,并向扩展发布其访问令牌。
这些令牌在过期之前最多可持续一小时。
javascript发出的Cookie的速率也将降低。
它在以下假设下运行:
如果另一个应用程序可以访问您的cookie,则它们仍然可以在网站上模拟您,因此访问api也不例外。
所有身份验证方法仍将通过我们的控制。
令牌的定期到期意味着,如果令牌遭到破坏,则剥削的时间将很有限。
我的问题是,这是限制对api的访问的安全方法吗?
还有更好的吗?
几个注意事项。
我知道,chrome扩展程序可以请求访问给定站点的Cookie的许可。我相信Firefox扩展也可以这样做。
显然,我们不希望通过任何页面上的javascript访问cookie,否则我们将遭受XSS攻击,因此仅需要通过扩展名即可访问它们。
没有找到相关结果
已邀请:
3 个回复
氮顺
贸会
肺鬼耙扮群