OAuth Javascript:twitter,通过默默无闻的安全性?有更好的方法吗?

时间:2012-04-20 16:12:08

标签: javascript security twitter oauth security-by-obscurity

背景

让我们说我想使用twitter的javascript api。 twitter javascript api说

  

在OAuth中使用JavaScript时要小心。不要公开您的密钥[1]

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

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

以下方案是安全还是模糊?

方案

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

为了解决允许用户查看我的api凭据的访问权限的问题,让我说通过一个面向公众的页面汇集所有twitter api通信,比如Post.php。为防止所有用户访问此页面,我可能需要在网址中使用guid:Post.php?pass = 91626979-FB5C-439A-BBA3-7715ED647504

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

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

执行服务器端http请求

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

这是安全还是模糊不清?你有更好的方法(当然是通过javascript)吗?

1 个答案:

答案 0 :(得分:1)

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

工作正常。