澳门新葡亰信誉平台游戏国人2亿求职简历泄露来源确认,原项目已被删除 – 简历,隐私,MongoDB,github – IT之家

by admin on 2020年4月22日

据国外一个科技博客发文透露,GitHub 的 800 万用户信息从 GeekedIn 的
MongoDB
泄露了。也许你的数据,我的数据,如果你是在软件行业,数以百万计的人的数据都已被泄露。

IT之家1月13日消息
此前,IT之家曾报道过有推特用户发现国内超过2亿用户的简历信息遭泄露,目前,这些数据来源已经确认。据安全站点HackenProof的报告,由于一个未加密的MongoDB数据库没有采取任何安全保护措施,这导致202730434份国人求职简历泄漏。

go语言打造个人博客系统

澳门新葡亰信誉平台游戏 1

泄露的这些简历信息全部来自中国国内,包含诸多详细的信息。根据该用户给出的截图,这些信息包括姓名、曾用名、性别、出生日期、所在城市、手机号码、邮箱、政治面貌、出生地、户口所在地、国籍、民族、邮编、QQ、微信、所在地址、婚姻状况、子女情况、工作经历等诸多信息。

为什么选择go语言?

  听说go语言是在几年前,但真正深入了解他却是在2017年,因为当时作为讲师
,需要准备go语言的课程,结果稍一接触立刻就喜欢上这门语言了,作为长期的c/c++程序员来说,10年来参加了很多大型项目,用c来开发确实很苦逼,所以碰到go语言时,发现真的能够上瘾,新生的语言肯定会把作者对之前各种语言的痛点体现出来,尤其还是肯-汤普森这样的大师。

go语言的优点很多:

  • 代码很简洁
  • 上手很容易
  • 内存自回收
  • 运行很高效
  • 开发效率高
  • 风格很统一
  • 出身自名门

  这或许就是很多人选择go语言的原因吧,如果要做一个有后端的项目,相信go语言将成为很多程序员的首选吧。因为python,java等高级语言的优点,go都有,但是运行的效率更高。

可以看到,GeekdIn 是一个服务于开发者和雇佣者的平台。

该机构通过对比简历的数据模式,发现GitHub项目xzfan/data-import疑似为收集这些简历数据的爬虫。该爬虫会收集来自国内多个求职平台的简历。

为什么开发博客?

  博客在早些年是比较火的,现在大多数程序员都养成了写博客的习惯。其实博客是一个非常典型的互联网应用,其中所用的最基本技术正是网络编程中使用到的,在开发过程中也可以了解到一些开发的细节,同时还有对时下比较火爆的头条,抖音等产品有更深刻的了解。

该平台的一部分 MongoDB 实例:

目前,泄漏数据的MongoDB数据库已经无法访问,但是通过日志发现,有数十个IP曾经访问过该数据库,这意味着简历数据可能已经泄漏。

开发需要准备什么?

  首选考虑数据存储,写好的博客需要存储起来,那么首先要有个数据库了,在这里我们选择MongoDB数据库,说到MongoDB,它的介绍很有意思,MongoDB是使用C++开发的一种分布式数据库,它是非关系型数据库中当中最像关系型的。使用MongoDB是因为它有一个document的概念,数据以文档的形式存储,当然也是key-value格式的。基于这样我们需要安装一个数据库,在linux平台安装非常简单。

sudo apt-get install mongodb 

  数据库的问题解决后,还要准备什么呢?可以动手了,剩下的就是在go语言里怎么写http服务器了,在写之前最好了解一下http协议,不然有些事情还是无法完全掌控。

澳门新葡亰信誉平台游戏 2

go语言的数据库操作

首先研究明白go语言当中如何操作MongoDB

  • gopkg.in/mgo.v2 安装

go get -u gopkg.in/mgo.v2/bson
  • 连接到数据库

type Mongo struct {    Session *mgo.Session}func  Connect(url string) {    session, err := mgo.Dial    if err != nil {        panic    }    m.Session = session}

文档是MongoDB的核心构成,MongoDB编程基本上就是围绕文档进行增删改查操作。

  • 构造文档

    type Person struct {        Name string        Age  int    }    tabName := "person"    ps := sess.DB("myblog").C

文档构造好之后,就可以基于这个文档进行增删改查操作了

  • 增加文档
    增加一个人物信息,姓名和年龄

    //添加一个perso    //func (c *Collection) Insert(docs ...interface{}) error    err = ps.Insert(&Person{"yekai", 30})    if err != nil {        panic    }
  • 修改文档

    //修改person    //func (c *Collection) Update(selector interface{}, update interface{}) error    err = ps.Update(bson.M{"name": "yekai"}, bson.M{"name": "yekai", "age": 35})    if err != nil {        panic    }
  • 删除文档

    //删除全部纪录    //(c *Collection) RemoveAll(selector interface{}) (info *ChangeInfo, err error)    ps.RemoveAll(bson.M{"name": "yekai"})
  • 查询文档
    查询与其他接口略有区别在需要处理查询结果集,这在go语言中同样非常简单。

    //查询person    p1 := Person{}    //func (c *Collection) Find(query interface{}) *Query    ps.Find(bson.M{"name": "yekai"}).One    fmt.Println   
  • 思路总结

澳门新葡亰信誉平台游戏 3

  在了解了go语言的优点和go语言的数据库操作后,我们就可以开始个人博客系统的开发了,下次我们将分享这部分的内容。


澳门新葡亰信誉平台游戏 4

博客作者发现到的遭泄露信息:

澳门新葡亰信誉平台游戏 5

澳门新葡亰信誉平台游戏 6

请持续关注……

(文/开源中国)    

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图