Meteor服务访问令牌安全性的最佳实践

时间:2014-02-15 08:19:12

标签: security meteor access-token

关于如何从服务器向客户端发布Meteor用户帐户的访问权限,已经有一些good answers。我只是想知道从安全角度来看它是否更好:

  1. 发布当前用户的访问令牌并从客户端发出请求,或
  2. 将令牌隐藏在服务器上,从那里进行API调用,并将结果返回给客户端?
  3. 如果这太主观了,那么让我把它改写一下,从安全角度来看,这两种方法有什么不同吗?

    Meteor的“无处不在的数据库”理念告诉我,发布私有数据应该是安全的,因为发布的其他用户数据也会被视为私有。另一方面,令牌可用的地方越多,他们被盗的矢量就越多。你会推荐什么,有更重要的考虑因素吗?

    编辑:我想另一个考虑因素是,至少对于Google的REST API,您需要将应用的客户端密钥作为参数传递。最好将其隐藏在最终用户之外,这可能是支持从服务器发送请求的论据。

1 个答案:

答案 0 :(得分:2)

如果可能的话,最好避免将令牌发送到客户端。这是因为即使有最轻微的机会,你也可以避免一些恶意的工具栏/扩展程序访问你的JS并访问令牌,这对用户和你自己来说非常糟糕。

您还可以控制访问权限。

例如,如果它是facebook并且您将其发布到客户端。它可以用来改变他们的状态,例如,在你的应用程序名称中。在未公开令牌的服务器上,这是不可能的。

您也不会意识到客户端所做的更改,而您总是在服务器上。

除非您的api有某种“可发布密钥”,否则永远不会向客户端发送访问令牌。

2中通过服务器代理它的方法更好。

1.(并且几乎是我能想到的唯一一个)的优点是,当你通过API提供程序进行某种使用限制时,每个ip地址(例如twitter的软管)。