背景
假设我想使用 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)吗?