Recommended Services
› Amazon Web Services
› LeanCloud
› New Relic
› ClearDB
liubin
V2EX  ›  云计算

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

  •  
  •   liubin · Jan 9, 2014 · 7359 views
    This topic created in 4681 days ago, the information mentioned may be changed or developed.
    想问一下这样(纯)前端(js)的服务,怎么保证别人不能使用我的ID和Key。
    看了一下Parse和Firebase这样的东西,我的理解是他们的ACL(或者叫Security Rules)都是针对对象级别的,比如Parse的每个obejct都有一个ACL字段,可以指定谁能读,谁能写。

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

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

    我的问题是,js的话代码都是暴露的,key和id都是明文的。我怎么能防止别人使用这个key和id呢?
    10 replies  •  1970-01-01 08:00:00 +08:00
    openroc
    openroc
    Jan 9, 2014
    1
    最近也在研究这个。 先mark一下。
    openroc
    openroc
    Jan 10, 2014
    2
    看了一下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
    liubin
    OP
    Jan 10, 2014
    3
    @openroc 是,他们都有针对类和对象的Class设置。但是还是不能防止别人使用我的id和key,比如写入垃圾数据等。
    openroc
    openroc
    Jan 10, 2014
    4
    put、post都限制用户了,不是你的用户肯定不能写入,如果是你的用户,就应该写入。:)

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

    Js毕竟是明文的,没办法

    Parse主要的应用还是Native APP
    run2
    run2
    Jan 12, 2014
    7
    实在担心就弄个主机包装一下?
    hjiang
    hjiang
    Apr 8, 2014
    8
    要做到安全,就需要在写程序的时候就假设 app id 和 app key 都是公开的。通过 ACL 来控制权限。 AVOS Cloud (http://avoscloud.com) 和 Parse 都是使用同样的机制。
    liubin
    liubin
    OP
    Apr 8, 2014
    9
    @hjiang 3ks,我主要关心的是如何防止别人拿你的id和key去访问数据。。。。
    hjiang
    hjiang
    Apr 17, 2014
    10
    @liubin 也可以用 ACL 控制对私有数据的读取啊,有些数据可能必须让所有人可以读取才行,但这一点和你自己开发后端没有不同。别人同样可以通过向你的服务器发送一些请求来读取到一些数据。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1306 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 35ms · UTC 20:00 · PVG 04:00 · LAX 12:00 · JFK 15:00
    ♥ Do have faith in what you're doing.