【问题标题】:Can we call twitter API directly from browser?我们可以直接从浏览器调用 twitter API 吗?
【发布时间】: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


【解决方案1】:

创建一个Server来调用API,不要直接从浏览器调用

【讨论】:

  • 是的,5 年来我一直在想他们应该是这样,在这个去中心化和 web3 的时代更是如此,twitter 似乎在这种方式上过于封闭了自己
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-23
相关资源
最近更新 更多