1

背景

假设我想使用 twitter 的 javascript api。推特 javascript api 说

将 JavaScript 与 OAuth 一起使用时要小心。不要暴露你的钥匙[1]

听起来使用带有 OAuth 的 javascript 是不安全的[2]。不是因为网络问题(可以使用 https),而是因为有权访问查看源的用户也可以查看用 javascript 硬编码的密钥。使用这些密钥,用户可以独立于您的应用程序控制您的 Twitter 帐户!

我见过的最好的方法是使用 YQL [3]。但是如何在您自己的服务器上执行此操作。

以下场景是安全的还是晦涩的?

设想

我打算使用 twitter 的 javascript api 来控制对我的 twitter 帐户的访问。

为了解决允许用户查看源访问我的 api 凭据的问题,假设我通过一个面向公众的页面(例如 Post.php)汇集所有 twitter api 通信。为了防止所有用户访问此页面,我可以在 url 中要求一个 guid:Post.php?pass=91626979-FB5C-439A-BBA3-7715ED647504

服务器端应用程序将向该页面发出 http 请求,因为服务器上的唯一 guid 是已知的。

api 通信可以保留在 javascript 中,而对该 javascript 的访问是通过服务器已知的 guid 保护的。http 请求是在服务器上发起的,因此无法通过查看流量来查看请求。guid 不会包含在客户端的源中。客户端将向服务器函数发出请求,然后向 Post.php 发出服务器端 http 请求

这实质上会导致 Post.php 无法从浏览器访问。本质上,服务器将启动 javascript api 调用。

这是安全的还是晦涩的? 您有更好的方法(当然是通过 javascript)吗?

4

1 回答 1

1

更新下面给出的解释:是的,没关系。您有一个服务器,客户端通过登录进行身份验证,服务器处理向 twitter 发布的内容。由于只有您受信任的服务器具有 twitter 凭据,因此客户端只能通过它。

工作正常。

于 2012-04-20T16:16:05.173 回答