1. 首页
  2. ������ 相关的文章

facebook数据库设计?警惕!未受保护的暴露了10万+帐户登录数据

facebook数据库

TL; DR:

他们对堆栈底部MySQL之上的全部内容都使用带有缓存图的堆栈体系布局。

长答案:

我本人对此进行了一些研究,由于我很好奇它们怎样处置大量数据并快速进行搜索。我见过有人诉苦定制的交际网络脚本会随着用户群的增长而变慢。在我 仅用1万个 用户和 250万个小伙伴 连接进行了基准测试之后-甚至没有试图去烦恼群组权限,顶和墙贴-很快就证实了这种方法是有缺陷的。因此,我花了一些时间在网上搜索怎样做得更好,并看到了这篇官方的Facebook文章:

真的 提议您在继续阅读之前观看上面第一个链接的演示。这大概是FB怎样在您发现的幕后工作的最好讲明。

视频和文章告诉您一些事情:

  • 他们在堆栈的 最底部 使用MySQL
  • SQL DB 上方 是TAO层,它至少包含两个缓存级别,并使用图形描述连接。
  • 我找不到关于它们实际用于其缓存图的什么软件/数据库的任何信息

让我们看一下,小伙伴关系在左上方:

好吧,这是一张图。:)它没有告诉您 怎样 使用SQL进行构建,它有多种实现方法,但是 此站点 有许多差别的方法。 留意: 请思量关系数据库的 本质: 思量存储尺度化数据,而不是图形布局。因此它的性能不如专门的图形数据库好。

还要思量到,您不但要实行庞杂的查询,而不但仅是实行好友的查询,比方,当您要过滤给定坐标中您和您的好友的小伙伴嘻歡的全部位置时。图表是此处的抱负解决方案。

我无法告诉您怎样构建它,使其性能精良,但显然需要进行重复试验和基准测试。

这是我 扫兴的 测试 只是 小伙伴的小伙伴的調察结果:

数据库架构:

CREATE TABLE IF NOT EXISTS ` friends ` ( ` id ` int ( 11 ) NOT NULL , ` user_id ` int ( 11 ) NOT NULL , ` friend_id ` int ( 11 ) NOT NULL ) ENGINE = InnoDB AUTO_INCREMENT = 2 DEFAULT CHARSET = utf8 ;

好友查询:

( select friend_id from friends where user_id = 1 ) union ( select distinct ff . friend_id from friends f join friends ff on ff . user_id = f . friend_id where f . user_id = 1 )

我真的提议您创建至少包含1万条用户记载的示例数据,而且每条记载至少具有250个小伙伴连接,然后运行此查询。在我的机器(i7 4770k,SSD,16gb RAM)上,该查询的结果 约为0.18秒 。大概可以对其进行优化,但我不是DB天才(欢迎提出提议)。但是, 假如按 比例缩放是线性的, 那么 对于100k用户而言,您已经到达1.8秒,对于100万用户而言已经为18秒。

对于约莫10万名用户来说,这听起来还是不错的,但是请思量您只是获取了小伙伴的小伙伴,而且没有实行任何更庞杂的查询,比方“ 仅向我表现小伙伴的帖子,并进行权限检察(假如容许或不容许)察看此中一些+进行子查询以检察我是否嘻歡此中任何一个 。您想让数据库检察您是否嘻歡某个帖子,不然必须在代码中进行。还要思量这不是您运行的唯一查询,而且您在一个或多或少受欢迎的网站上同时拥有超越活动用户的查询。

我以为我的答复答复了Facebook怎样很好地计划他们的小伙伴关系的问题,但是很抱歉,我无法告诉您怎样以一种快速运行的方法来实现它。实行交际网络很轻易,但是要确保其体现精良显然不是-IMHO。

我已经开始实验使用OrientDB进行图形查询,并将边沿映射到底子SQL DB。假如我完成了,我会写一篇有关它的文章。

E安全11月19日 克日,研究职员发现,一个ElasticSearch数据库被曝光在网上,此中包含超越100000个被泄漏的Facebook账户的数据。这些信息被恶意分子用作针对交际网络!用户的环球黑客活动的一部分。

“我们通过一个不安全的数据库发现了这一骗局,黑客使用该数据库存储了10万多名受害者的私家数据。发布在vpnMentor上的一篇分析文章写道。

“实行这一骗局的人是通过一个工具来诱骗Facebook用户,让他们提供个人账户的登录凭据,这个工具可以冒充表现是谁访问了他们的个人资料。

黑客使用被盗的登录根据访问Facebook帐户并在帖子中分享垃圾邮件,链接到伪造的比特币生意业务平台,该平台曾敲诈至少250欧元的“存款”。

研究职员说:“通过提供虚伪新消息网站的链接,黑客盼望绕过并殽杂Facebook检测工具。假如被黑客入侵的帐户一遍又一各处公布与比特币骗局相同的链接,那么它们很快就会被禁止。”

黑客通过提供一种工具来伪装谁访问了他们的个人资料,从而诱骗Facebook用户提供他们的账户登录凭据。档案包括电子邮件、姓名和电话号码等个人身份信息(PII)数据,专家们还发现了该敲诈活动中被雇佣的数十个域。该档案还包括有关网络犯法分子怎样主动实行流程的技能信息。

现在尚不清晰其他第三方是否访问或走漏了公开的数据。 档案大小超越5.5 GB ,在本年6月至9月间保持打开状态。 据专家称,至少有10万名Facebook用户数据被泄漏。

vpnMentor指出Facebook帐户未遭到黑客打击,该公开数据库属于第三方,他们使用数据库处置通过一群针对Facebook用户的!诈骗网站非法得到的账户登录根据。研究职员将环境公布至交际网络,并确认该数据库的真实性。

发现数据库的第二天,它很大概受到Meow打击的打击擦除了其数据,使数据库脱机。自7月以来,专家察看到数十个不安全的Elasticsearch和MongoDB实例在网上公开,它们被黑客莫名其妙地擦除。

“假如你是Facebook用户受害者,请立刻变动您的登录根据。” 陈诉总结道。

“别的,假如您在其他任何帐户上重复使用了Facebook密码,请立刻变动密码以防备黑客入侵。我们提议使用密码天生器创建唯一的强密码,并定期进行变动。” 返回搜狐,察看更多

集成步骤:

引入依靠包

compile 'com.facebook.stetho:stetho:1.3.1'

初始化:

public class ClientApplication extends Application { @Override public void onCreate () { super .onCreate(); Stetho.initializeWithDefaults( this ); } }

运行App, 打开Chrome输入chrome://inspect/#devices(别忘了用数据线把手机和电脑连起来哦)

Chrome 打开数据库步骤:

1、如下图:点击inspect

2、打开数据库并察看数据库

3、打开SharedPreferences文件

项目 GitHub 地点

本文网址: http://www.51iflove.com/p/202121310341_1245_3426194350/home