【发布时间】:2016-09-04 15:02:14
【问题描述】:
我看到 twitter REST API 需要一个复杂的 oauth 标头,它建议在服务器端调用
我想知道的是,我是否可以使用 JavaScript 从浏览器调用那些 REST API
据我所知,twitter 的 OAuth 标头需要签名,必须使用消费者密码(不是应用密码)进行签名
我想知道我是否可以在客户端执行此操作? 如果我在我的网站上公开该消费者机密(而不是应用机密)会出现什么问题?或者有没有办法在标头中调用那些没有 oauth_signature 的 API
【问题讨论】:
-
如果您使用的是 Chrome,Postman 将允许您使用浏览器作为客户端构建 REST 请求。
-
也就是说,如果您希望从您网站上的客户端 JavaScript 进行 REST 调用(听起来像您),我建议您不要 这样做。提供您的 API 密钥将允许任何有能力使用查看源凭证的人执行您授予 API 密钥权限的任何操作,同时看起来是您。在 99% 的情况下,这是一个严重的安全问题。
-
@Actorclavilis 正如我所说,在 twitter 中有不是应用程序秘密的消费者秘密。这是一个差异密钥,所以我不确定它可能导致什么安全问题。我肯定不会让应用程序机密存在于客户端中。但是对于消费者的秘密,我很想
-
经验法则:如果有任何事情是“秘密”的,那么它永远不应该出现在公共领域。您可以使用 webtask.io 或 AWS Lambda 等服务来相当快速地构建和部署您的服务器端。
-
@Abhishrek 当然,正如规则所述,除了性能和成本,我不想做不必要的安全性(lambda 实际上并不是免费的,它会巧妙地花费你所有的数据传输)
标签: javascript security twitter oauth