Background
假设我想使用twitter的javascript api。推特 JavaScript API 说
将 JavaScript 与 OAuth 一起使用时要小心。不要暴露您的密钥 [1]。
听起来将javascript与OAuth一起使用是不安全的[2]。 不是由于网络问题(可以使用https),而是因为有权访问view-source的用户也可以查看在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 发出服务器端 http 请求.php
这基本上会导致 Post.php 无法从浏览器访问。 从本质上讲,服务器将启动javascript api调用。
这是安全的,还是模糊的? 你有更好的方法(当然是通过javascript)吗?
更新下面的解释:是的,这很好。您有一个服务器,客户端通过登录进行身份验证,服务器处理发布到 twitter。由于只有您受信任的服务器才具有Twitter凭据,因此客户端只能通过它。
工作正常。