Parse这样的BAAS如何保证AppID和Javascript Key的安全(不被乱用)?

2014-01-09 12:40:47 +08:00
 liubin
想问一下这样(纯)前端(js)的服务,怎么保证别人不能使用我的ID和Key。
看了一下Parse和Firebase这样的东西,我的理解是他们的ACL(或者叫Security Rules)都是针对对象级别的,比如Parse的每个obejct都有一个ACL字段,可以指定谁能读,谁能写。

此外,他们也都提供(集成)了用户认证(username/password,social)等,这样,就能确保用户和他们的数据的安全性。这和非BAAS应该是一样的。

这两个服务器的通信也都是SSL的,FB更是号称采用了2048位加密。

我的问题是,js的话代码都是暴露的,key和id都是明文的。我怎么能防止别人使用这个key和id呢?
5880 次点击
所在节点    云计算
10 条回复
openroc
2014-01-09 17:33:12 +08:00
最近也在研究这个。 先mark一下。
openroc
2014-01-10 11:23:14 +08:00
看了一下parse的文档,根据他们介绍的security,

App ID和App Key是不保证安全的,而且要求,client和server之间的通信必须是https。接下来主要class level的控制,以及object level的控制。才能保护到你想保护的数据。

因此,即便有了ID和key,只是开放的数据,对写爬虫,或者其他第3获取你的内容的容易了,可以直接通过api获取数据。你通过class level和object level的限制的数据,还是不能轻易被获取的。

由于user login,Parse返回了session token。 https://parse.com/docs/rest#users
liubin
2014-01-10 12:37:50 +08:00
@openroc 是,他们都有针对类和对象的Class设置。但是还是不能防止别人使用我的id和key,比如写入垃圾数据等。
openroc
2014-01-10 20:20:30 +08:00
put、post都限制用户了,不是你的用户肯定不能写入,如果是你的用户,就应该写入。:)

因此,id和key只是个标识,关键安全机制在class level和object level的权限控制。
openroc
2014-01-10 20:21:18 +08:00
btw,如果你的用户写入垃圾数据,就和v2上,发垃圾贴一样,该运维的处理。
sun391
2014-01-10 20:23:40 +08:00
比较担心的是恶意调用api提交垃圾数据,或者是耗你的api调用次数。

Js毕竟是明文的,没办法

Parse主要的应用还是Native APP
sobigfish
2014-01-12 17:27:59 +08:00
实在担心就弄个主机包装一下?
hjiang
2014-04-08 00:13:26 +08:00
要做到安全,就需要在写程序的时候就假设 app id 和 app key 都是公开的。通过 ACL 来控制权限。 AVOS Cloud (http://avoscloud.com) 和 Parse 都是使用同样的机制。
liubin
2014-04-08 09:29:42 +08:00
@hjiang 3ks,我主要关心的是如何防止别人拿你的id和key去访问数据。。。。
hjiang
2014-04-17 00:21:29 +08:00
@liubin 也可以用 ACL 控制对私有数据的读取啊,有些数据可能必须让所有人可以读取才行,但这一点和你自己开发后端没有不同。别人同样可以通过向你的服务器发送一些请求来读取到一些数据。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/96286

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX