关于如何从服务器向客户端发布Meteor用户帐户的访问权限,已经有一些good answers。我只是想知道从安全角度来看它是否更好:
如果这太主观了,那么让我把它改写一下,从安全角度来看,这两种方法有什么不同吗?
Meteor的“无处不在的数据库”理念告诉我,发布私有数据应该是安全的,因为发布的其他用户数据也会被视为私有。另一方面,令牌可用的地方越多,他们被盗的矢量就越多。你会推荐什么,有更重要的考虑因素吗?
编辑:我想另一个考虑因素是,至少对于Google的REST API,您需要将应用的客户端密钥作为参数传递。最好将其隐藏在最终用户之外,这可能是支持从服务器发送请求的论据。
答案 0 :(得分:2)
如果可能的话,最好避免将令牌发送到客户端。这是因为即使有最轻微的机会,你也可以避免一些恶意的工具栏/扩展程序访问你的JS并访问令牌,这对用户和你自己来说非常糟糕。
您还可以控制访问权限。
例如,如果它是facebook并且您将其发布到客户端。它可以用来改变他们的状态,例如,在你的应用程序名称中。在未公开令牌的服务器上,这是不可能的。
您也不会意识到客户端所做的更改,而您总是在服务器上。
除非您的api有某种“可发布密钥”,否则永远不会向客户端发送访问令牌。
2中通过服务器代理它的方法更好。
1.(并且几乎是我能想到的唯一一个)的优点是,当你通过API提供程序进行某种使用限制时,每个ip地址(例如twitter的软管)。