开发乐一乐:搜索引擎爬虫也会把网站的数据删除的

2016-03-29 16:36 栏目:团队动态 查看(8933)

近期在开发一个模块过程中,开发了一部分代码就上传到服务器上面,而且是用临时域名可访问的,因为上面没有实质性内容数据,而访问者实际上就是微构网络开发组成员自己;当然除此之外就是搜索引擎等网络爬虫了。

因此这个模块是在开发中的,很多地方没有完善。但就这样就出现了一个看起来非常奇葩的问题:在开发环境中这个模块的数据没任何问题,而在服务器环境中其中的某个功能的一张主表的数据总是莫名其妙的就没了。我们意识到就是哪个地方执行了删除语句,而关于这个表记录的删除唯一“合法”执行的位置就是内容中的删除按钮,而且这个按钮点击并暂时没放上权限控制(开发完成后必须加上权限,这是毫无疑问的)。为了验证我们的思路是否正确,我们对服务器开启了mysql语句执行记录日志。

结果我们通过日志中执行这个表记录删除语句前后执行的语句对比,发现还真是这个位置的问题。首先这个位置关于删除的基本功能做好了,只是没进一步完善,也就是一个毛坯;任何人都可以进行删除。但问题是谁去删除呢?我们自己并不可能去删除,然后我们竟然sql注入都考虑到的,但奇怪的是如果真被注入了,我相信攻击者也不会这么无聊,不但只对一个非敏感表操作,而且就是是敏感的表,里面的临时数据并没有什么卵用。

后面我突然知道了想到了,开发环境的软件组件及代码跟服务器环境是一样的,唯独不同的就是服务器上还有网络爬虫。为了验证是否真的是网络爬虫“作案”的,我们把网络爬虫做一个判断,结果隔了很久发现确实没有被删除。也就是说这个数据就是被搜索引擎的爬虫给删除的,当然正式运营的时候因为完善的权限控制除了权限内的角色外其他的都没有权限删除。

其实吧,想一下也确实,虽然觉得有趣,但事实上就是这样的。因为网络爬虫其实也相当于我们的一个访客,比如我们的网站为了有利于SEO做成树状结构,它访问网站的首页后,需要进一步访问二级栏目或者内页,那么就是先抓取首页的网站内链,然后访问到二级栏目或者内页。而在这里,假设爬虫已经到了内页,然后会访问内页的内链,而删除按钮对应的url其实也可以理解为一个页面,在有权限的前提下,只要访问了这个url就相当于执行了删除操作。原因就是这样!

与我们的项目经理联系
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流

转载请注明出处:开发乐一乐:搜索引擎爬虫也会把网站的数据删除的 - 微构网络
分享: