相关疑难解决方法(0)

在Javascript中保护OAuth

我有一个api,它使用OAuth 1.0a来验证使用它的应用程序.它正在取代一个旧的api,它使用了一些被弃用的定制和hodge-podge调用.

众所周知,OAuth 1.0a在(客户端)Javascript中并不安全,因为它依赖于保密的消费者秘密.这是不可能的,因为源始终是可见的.

我们为Chrome,Firefox,IE和Safari提供了浏览器扩展,将来需要使用此API.这些扩展都是大部分或完全用Javascript编写的,因此也存在安全性问题.

这些扩展是内部的,因此可以使用自定义身份验证方法来获取其访问令牌.

我计划实施的内容如下:

  • 用户在浏览器中登录网站.
  • 该网站向他们发放带有会话密钥的cookie.
  • 我们的扩展然后获取该cookie并将其传递给api.
  • api验证它是一个有效的活动会话并发布其访问权限的扩展.
  • 这些令牌在到期前最多持续一小时.
  • javascript发布的cookie也会有较低的费率限制.

它在以下假设下运作:

  • 如果另一个应用程序可以访问您的cookie,那么无论如何他们都可以在网站上冒充您,因此访问api也不例外.
  • 所有身份验证方法仍然通过我们的控制.
  • 令牌的定期到期意味着如果它们被泄露,那么剥削的时间有限.

我的问题是,这是一种限制访问api的安全方法吗?还有更好的吗?

几个笔记. 我知道有一个事实,Chrome扩展可以请求访问您的给定网站的cookie的权限.我相信firefox扩展也可以这样做.

显然,我们不希望我们的cookie可以通过任何页面上的javascript访问,否则我们会暴露自己的XSS攻击,因此它们只需要通过扩展来访问.

javascript security oauth browser-extension oauth-provider

20
推荐指数
1
解决办法
9645
查看次数