基于爬虫的网络安全问题探讨

时间:2022-12-25 02:45:57

基于爬虫的网络安全问题探讨

摘要:随着新一代网络信息技术的应用和服务越来越多,网络信息安全事件频繁爆发,网络攻击、病毒入侵、信息泄密等事件层出不穷。目前,大部分小型网站对于网络安全重视不足,网络安全风险意识比较薄弱,易引发一系列问题。通过一个简单的网络爬虫案例测试某小型网站的安全性,通过网络爬虫技术分析、查找网络安全问题的原因,并就防范网络爬虫提出了一系列安全策略,提高网络风险意识。

关键词:网络爬虫;网络安全;安全策略

1关于网络爬虫概念与“爬取”过程

网络爬虫(WebSpider)又称“网络蜘蛛”,它能模拟正常用户的一些行为,按照一定的规则自动抓取网络中的各种信息。搜索引擎也是网络爬虫的一种,但是不影响网站的正常运行,也没有任何恶意行为。而一些恶意的网络爬虫常常通过短时间内大量访问等手段来消耗网络资源,使网站的正常运转出现问题,导致服务器崩溃等。大部分爬虫程序通过预先设定一个队列存放URL,在进行网页爬取时,先从某一个或若干个URL开始,记录该URL,再从该网页上查找链接的其他URL放入队列,不断地从当前页面查找新的URL,如此循环往复,直到满足设定的停止条件。

2网络爬虫爬取某网站的案例与简单分析

2.1预判某网站安全技术措施。现在很多网站在一定程度上做了一些安全防护,但是由于成本以及技术原因等,大部分小型网站的网络安全策略比较薄弱,以一个爬虫案例来测试一下某网站网络安全问题。首先找到一个某诗词网站上的内容,查看PC网站请求地址,=发现不同的页面只是p=xx不同,xx=当前页面值,当p<=30时,页面显示正常,但是当翻页超过30页时,系统返回了错误页面,提示“因服务器开支对本站造成巨大压力,请下载客户端进行访问”。说明系统还是针对大量数据做了一些安全策略性的限制,当请求超过30页时提示使用手机APP来访问。于是尝试从APP上找破解方法,通过抓包工具PacketCapture成功找到了数据请求接口。2.2进行爬虫源码编写。publicstaticvoidmain(String[]args){for(intp=1;p<=76;p++){Documentdocument=Jsoup.connect("https:/xxx/xx.aspx?p="+p+"&c=%e5%8f%a4%e7%b1%8d").get();Elementsels=document.getElementsByClass("cont");for(intj=1;j<els.size()-2;j++){Stringtemp=els.get(j).getElementsByTag("a").get(0).ownText()+"<--->"+els.get(j).getElementsBy-Tag("a").get(1).ownText();contentListo.add(temp);}for(intp=1;p<=6;p++){Stringnotice=rest-Template.getForObject("=食物&t=&token=gswapi&page="+p,String.class);JSONObjectot=JSONObject.fromObject(notice);JSONArrayjsonArray=ot.getJSONArray("mingjus");for(intj=0;j<jsonArray.size();j++){ringnameStr=((JSONObject)jsonArray.get(j)).getString("nameStr");Stringauthor=((JSONObject)jsonArray.get(j)).getString("author");StringshiName=((JSONObject)jsonArray.get(j)).getString("shiName");contentList.add(nameStr+"<--->"+author+"《"+shiName+"》");}for(inti=0;i<contentListo.size();i++){cells.get(i,1).setValue(contentListo.get(i));}awb.save("/Users/shiwu.xlsx");}catch(Exceptionex){ex.printStackTrace();}}2.3爬虫源码运行结果与安全分析。运行程序,包括朝代、作者、诗词名称、内容等都成功抓取,将结果保存成Excel文件。文件内容示例:桃李春风一杯酒,江湖夜雨十年灯。<--->黄庭坚《寄黄几复》一生大笑能几回,斗酒相逢须醉倒。<--->岑参《凉州馆中与诸判官夜集》在本案例中,网站只做了客户端的拦截,翻页超过30页就提示错误页面,但是对于服务端接口没有做流量访问控制、身份(如Ip、浏览器特征)验证,所以当通过抓包拿到请求接口后可以随意请求获得想要的数据。对于隐私性不强的网站可能并没有特别重要的信息泄露,但对于涉及个人隐私等安全信息的网站,如果能随意抓取数据,将会有很大的安全隐患。用不同的方式又测试了其他几个网站,发现大部分网站虽然都做了一些网络安全防护,但都做的比较简单,对于信息安全的保护远远不够。

3基于爬虫的网络安全风险及防范

3.1网络安全风险。网络安全做的不到位会有很多风险,例如,某个网站上有一个10MB的文件,使用爬虫抓取该文件1000次,就会使网站产生大量出站流量,可能会使服务器瘫痪无法正常访问。恶意爬虫入侵的几种方式:(1)通过测试网站或后门调试程序入侵。目前,大多数基于网页服务的系统都附带了测试页面及调试用后门程序等,有些可以通过这些页面或程序不经过正常的认证直接访问服务器端的敏感数据,一旦这些敏感数据被有心人利用,可能会成为进行网络分析与攻击的源头,出现各种安全问题。(2)通过管理接口入侵。为了方便管理,很多网络平台及系统都提供了基于网页的管理接口,允许管理员对其进行远程管理与控制。网络恶意爬虫程序通过搜索管理员登录页面获得URL,而进行一系列的网络爬取或攻击,网络安全得不到保护。(3)通过网页直接搜索入侵。恶意网络爬虫程序直接通过互联网搜索用户的个人资料,例如用户的姓名、电话、微信号、身份证号等个人隐私,恶意用户获取后有可能实施攻击或诈骗。恶意网络爬虫极易对网络造成攻击,所以必须采取一定的手段来限制网络爬虫的访问权限,一方面开放需要搜索引擎收录的页面,同时又对一些敏感页面进行保护。3.2限制网络爬虫的基本技巧。3.2.1对于程序本身的反爬策略。大部分的爬虫程序是对网站页面的源文件进行爬取,如爬取静态页面的html代码,对于动态的很难爬取。了解了爬虫的原理,可以通过仿写html,让网站程序本身穿上“防爬外衣”进行伪装。比如可以用其他技术去模仿写html,这样爬虫就很难抓取到信息。类似这样的技术还很多,就不一一举例。3.2.2对于数据包字段的反爬策略。HTTP请求中的UserAgent字段能够识别客户使用的浏览器、引擎、操作系统、设备信息等。而爬虫的UserAgent字段有它自己的特征,如百度搜索引擎爬虫会有类似Baiduspider的字符串,Mozilla/5.0(compati-ble;Baiduspider/2.0;+www.baidu.com/search/spider.html))。通过对UserAgent特定字符的限制可以阻止此类爬虫对网站的过度抓取。3.2.3对于用户行为的反爬策略。爬虫毕竟是机器人,和人的行为再像也会有区别。普通用户很少会短时间内多次访问同一页面或者同一账户短时间内多次进行相同操作,这种行为基本可以判定为爬虫。一般通过网站分析软件可以过滤出爬虫的IP和访问频率等,针对这种情况,可以采取适当的措施限制网络爬虫的访问权限,例如可采用限制IP或访问频率的方式来阻止此类爬虫,从而进行用户行为的隐私保护,以保持网站的安全运行。

4结语

随着全球信息化步伐的加快,安全问题刻不容缓,不仅涉及个人利益、企业生存、金融风险等问题,还直接关系到社会稳定和等诸多方面,了解网络面临的各种威胁,防范和消除这些威胁,已经成为网络发展中最重要的事情之一。

参考文献

[1]吴翰清.白帽子讲Web安全.北京:电子工业出版社,2012.

[2]孙卫琴.Tomcat与JavaWeb开发技术详解.北京:电子工业出版社,2009.

[3]刘驰,胡柏青,谢一.大数据治理与安全:从理论到开源实践.北京:机械工业出版社,2009.

作者:毕艳华 高晓艳 张扬 单位:1.衡水市信息产业中心 2.衡水迅腾商务服务有限公司