当Facebook只是一家只有几个成员的小公司时,它须要一种方法来得到更多的成员,使用Facebook的邀请系统来邀请你的朋友。ide
最先的广告发布是在主流的网站上手动发布广告(好比用Google),或让您的成员使用其电子邮件账户邀请其朋友。学习
如今Facebook成长起来,当您想要更多的网站访问者时,你会在Facebook上作广告,由于每一个人都在那里。网站
Facebook的邀请系统:
当用户在初期加入Facebook时,几乎看不到任何东西。所以,Facebook要求其成员使用由注册用户建立的电子邮件来邀请其朋友。翻译
用户提供了他的朋友的电子邮件地址,他们从Facebook收到了一封电子邮件,说“ 你好啊,你的朋友如今在Facebook上,欢迎您也加入Facebook!”。blog
有趣的部分:
当我遇到Facebook的这一功能时,我当即开始对其进行分析。我想,若是以用户A的身份邀请他们加入,并试图愚弄他们,那就太好了,尽管这样作的人是用户B。it
当我不断地邀请人们时,我注意到了一些有趣的事情:每一个到特定电子邮件地址的邀请中都包含一个邀请ID:ent_cp_id。
单击“邀请到Facebook”时,会弹出一个小窗口,并显示被邀请者的完整电子邮件地址。恶做剧的同时发现了邀请的时候会显示完整的电子邮件地址。
我写了一封邀请信,而且邀请了个人一位好友。class
这时我在思考:ent_cp_id是控制邀请邮件的,我已经邀请了这个用户,他的ent_cp_id应该不能再访问了。但我错了。它的ent_cp_id还在那里。事实上,只要从新传输HTTP请求,我就能够再次邀请相同的用户。互联网
可是这个漏洞最有趣的部分是,任何用户均可能看到ent_cp_id后面的电子邮件地址。
这意味着,任何经过电子邮件被邀请到Facebook的人都很容易受到电子邮件地址泄露的影响,由于该邀请从未被删除,并且任何用户均可以访问它。***者接下来要作的就是随机猜想ent_cp_id。正如我所说,以前的ent_cp_id没有被删除,因此成功率很高。请求
总结:
当您处理敏感信息(例如电子邮件地址)时,应始终限制能够执行某项操做的次数。另外,建议擦除可能连接到该敏感信息的任何ID,或者至少对其进行哈希保护。
Facebook很快解决了这个问题,并给予了赏金。方法
翻译自medium.com免责申明:本文由互联网整理翻译而来,仅供我的学习参考,若有侵权,请联系咱们,告知删除。