惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

The GitHub Blog
The GitHub Blog
P
Privacy International News Feed
博客园_首页
Hugging Face - Blog
Hugging Face - Blog
A
About on SuperTechFans
量子位
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
雷峰网
雷峰网
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
V
V2EX
Recent Announcements
Recent Announcements
博客园 - 叶小钗
B
Blog RSS Feed
Apple Machine Learning Research
Apple Machine Learning Research
Microsoft Azure Blog
Microsoft Azure Blog
H
Help Net Security
C
Check Point Blog
N
Netflix TechBlog - Medium
Y
Y Combinator Blog
P
Proofpoint News Feed
T
The Blog of Author Tim Ferriss
D
DataBreaches.Net
月光博客
月光博客
Engineering at Meta
Engineering at Meta
博客园 - 【当耐特】
Martin Fowler
Martin Fowler
小众软件
小众软件
博客园 - 司徒正美
大猫的无限游戏
大猫的无限游戏
爱范儿
爱范儿
M
MIT News - Artificial intelligence
G
Google Developers Blog
MyScale Blog
MyScale Blog
Google DeepMind News
Google DeepMind News
D
Docker
有赞技术团队
有赞技术团队
H
Hackread – Cybersecurity News, Data Breaches, AI and More
V
Visual Studio Blog
Recorded Future
Recorded Future
I
InfoQ
T
Tailwind CSS Blog
MongoDB | Blog
MongoDB | Blog
人人都是产品经理
人人都是产品经理
云风的 BLOG
云风的 BLOG
美团技术团队
Vercel News
Vercel News
GbyAI
GbyAI
aimingoo的专栏
aimingoo的专栏
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
WordPress大学
WordPress大学

LeanCloud

LeanCloud 无了? - V2EX 8 月 1 日起, LeanCloud 国际版共享域名不再向中国大陆提供服务 - V2EX LeanCloud 凉了吗? - V2EX LeanCloud 将加入心动/TapTap - V2EX 关于我在使用 LeanCloud 时候遇到的的一些情况分享 - V2EX Leancloud 又双叒叕挂了,炸站了 - V2EX 为什么 LeanCloud 中国版云引擎的标准版实例价格是 ¥ 1/天,国际版的是 $1/天? - V2EX leancloud 强制绑定域名, valine 没得玩了 - V2EX Leancloud 又挂了 - V2EX 这回 Leancloud 域名被锁定到底是因为啥 - V2EX Leancloud 挂了 - V2EX LeanCloud 怎么使用 JavaScript 的 API 保存富文本? - V2EX 做了一个 LeanCloud 数据存储的导出工具 - V2EX Leancloud 的价格方案是不是有点不合理啊 - V2EX LeanCloud 发布了多客户端实时同步数据的功能,欢迎试用 - V2EX 如何在 LeanCloud 开通 cdn 加速 - V2EX LeanCloud 的云引擎是什么配置,为什么免费版的性能还比阿里云的最低配要快? - V2EX 有没有 leancloud 代替方案或开源产品推荐? - V2EX 国内短信价格下调 17%, 2016 年 7 月 5 日零时生效 - V2EX LeanCloud 和阿里云到底有什么区别? - V2EX 怎样才能写得一手好代码? - V2EX 赞 Leanote - V2EX LeanCloud 的推送服务稳定性捉急啊,两分钟前好好的突然又不行了。。。另外大家都用什么 Android 推送服务,求推荐 - V2EX 又来。。。LeanCloud 中国节点的后端存储集群出现问题 - V2EX Leancloud 又挂了?全国都无法 ping 通 - V2EX leanapp.cn 下域名无法验证微信? - V2EX LeanCloud 你们的 push 是不是挂掉了,发了几个都不行啊 - V2EX 请允许我水一下,每次敲打 AV.Object...,都会让我下意识的乱想,不能好好的工作,你们设计的时候是如何考虑的,虽然我知道是之前品牌的简称…… - V2EX 使用 New Relic 监控云引擎应用的性能 - V2EX 「产品更新」高效内存存储服务 LeanCache 正式发布 - V2EX 基于 LeanCloud 云引擎的 Web 全栈方案: LeanEngine-Full-Stack - V2EX 「产品更新」2015 年 10 月 LeanCloud 产品更新汇总 - V2EX LeanCloud 的 PHP SDK 发布了 「更新日志」2015 年 9 月 LeanCloud 更新汇总 - V2EX 有 leancloud 的人在吗? - V2EX LeanCloud 中的 Relation 是不能同时 add 和 remove 的么? - V2EX LeanEngine 2.0 升级 3.0 指南 - V2EX 云代码 通过 leancloud 的命令行部署失败 - V2EX 如何避免使用 JS sdk 的页面被恶意使用网页开发者工具写个死循环调用 leancloud API? - V2EX 创业公司,北京 iOS 主程, 30k+, React Native, LeanCloud 用户。 - V2EX 我 leancloud 账号用 gmail 邮箱注册,但是忘记了登录密码,申请更改密码但是验证信息收不到,怎么破 - V2EX LeanCloud 发布简单好用的 Web 统计 - V2EX 如何在 React Native 中使用 LeanCloud? - V2EX LeanCloud 数据存储起码要交 200 块才能给数据表加设值唯一字段?? - V2EX Web 实时通信 Demo - V2EX 基于 LeanCloud 的 JavaScript 实时对战游戏简单 Demo - V2EX 对六月六日 LeanCloud 多项服务发生中断的说明 - V2EX LeanCloud JavaScript 发送短信 LeanCloud JavaScript 推送 SDK - V2EX
「重要的事情说三遍」将数据安全捍卫到底:权限管理( acl)文档全新发布
LeanCloudRRY · 2015-10-23 · via LeanCloud

本文首先发表于 LeanCloud Blog

随着使用 LeanCloud 的开发者越来越多,大家慢慢注意到一些在开发初期容易被忽视的漏洞,其中最容易被忽略但在我们的文档中又占据了重要地位的内容就是:权限管理( ACL )的使用。

ACL 全称为 Access Control List ,维基百科解释为:

存取控制串列,是使用以访问控制矩阵为基础的访问控制方法,每一个对象对应一个串列主体。访问控制表描述每一个对象各自的访问控制,并记录可对此对象进行访问的所有主体对象的权限。

等等,这个听上去怎么一阵头晕,这跟我的应用数据安全到底有什么关系?先别着急,我们当然不会用这么晦涩的语言来讲解 ACL ,来看下面的例子:

公司的保险柜只有财务人员才能打开,那么对于保险柜来说,其 ACL 可以表示为:

{
    "role:finance": {
        "access": true
    }
}

即只有角色( role )为 财务( finance )的人才拥有打开保险柜的权限( access = true )。

<!--more-->

这便是实现 ACL 的一种方式。实际上 ACL 就是一张清单,罗列出谁都可以访问和操作什么,其机制相当于操作系统中「用户」和「用户组」—— 你若指定只有某个用户或用户组才能查看或修改文件或文件夹的内容,那不相干的人就被拒之门外了。在数据库系统中这种控制管理也很常见,比如,工资表只能由人事部专员来读取和修改,库存表可以让销售人员读取,但不能修改等等。

那回到「应用数据安全」这个话题上来。在使用 LeanCloud 对数据进行增删改查的时候,你是否想过也应该在应用中实施 ACL 机制来保护数据呢?

答案是肯定的,而且是非常必要的。

大家知道,我们在使用 LeanCloud SDK 时,需要在初始化代码中明文写入 AppId 和 AppKey 。如果你的竞争对手或是恶意用户,反编译了你的 apk 或者打包好的安装程序,就能提取出 AppId 和 AppKey ,这样就可以模拟客户端身份来提交请求,非法篡改数据。

而用 JavaScript SDK 做开发都涉及不到反编译,只要在浏览器中查看源代码,这些信息就都暴露无疑。再者,已离职的开发团队成员也曾经使用或仍知晓这些关键信息,这也是隐患。所以很显然,我们不能把 AppId 和 AppKey 作为应用仅有的防御体系,更何况有些高手还能直接从应用链接或网络请求中截获敏感数据来伪造请求。

但是,如果使用了 ACL ,以上的安全隐患就都可以避免了!

整体上讲,因为使用了 ACL 的数据只允许指定的用户或者指定的角色来读取,而这种用户或角色信息在反编译的代码中是不存在的,所以即使请求被模拟发送到 LeanCloud 服务端,也会因为鉴权失败而被拒绝执行,从而数据安全有了保障。

具体来看,在 LeanCloud 后端的数据表中,每一个 AVObject 都会有自己的 ACL ,这个 ACL 就是提供给开发者用来管理权限的。例如,一个对象的默认的 ACL 如下:

{
    "*": {
        "read": true,
        "write": true
    }
}

这表示该对象的数据对所有人都是开放的,只要是合法的修改请求(即 AppId 和 AppKey 正确),都会被 LeanCloud 云端执行。

如果正确设置了 ACL ,我们可以只让具有某些特定角色的用户发来的修改请求生效:

{
    "*": {
        "read": true
    },
    "role:Administrator": {
        "write": true
    }
}

以上设置代表:所有人都可读,但是只有角色是 Administrator 的用户才能修改。

关于 ACL 的深入使用,我们还编写好了详细的开发指南,欢迎围观。

最后,作为开发者永远的小伙伴, LeanCloud 在此向你温馨提示:

飞驰在道路上的时候别忘了给车加个保险杆!