知识卡片
让敏感数据在受信任的环境里"可见但不可获取",而不是先给数据再事后约束用途
内容
第三方应用想在自己的页面里展示Facebook用户的头像、好友动态这些受隐私保护的数据,常规做法是把数据传给应用、再靠协议或合同约束应用不能滥用——但这意味着敏感数据终究离开了受信任的边界。Facebook的FBML反过来做:第三方应用不直接输出HTML,而是输出一种特殊标记(如<fb:profile-pic uid="8055"/>),由Facebook自己的服务器在受信任的环境里把这些标记解释、渲染成最终页面——隐私判断(这个人能不能看到那个人的头像)只在Facebook内部发生,第三方应用的代码里永远拿不到这份原始数据,却依然能让用户在自己的页面上看到它。这提示一个更根本的隐私设计原则:与其把敏感数据交出去、再靠规则约束下游怎么用,不如把”读取”这个动作本身限制在受信任的边界内,让外部只能指挥”如何渲染”而不是索取”数据本身”。
参考来源
《架构之美》第6章《数据增长:Facebook平台的架构》