标签爬虫代理

爬虫代理  时间:2021-05-05  阅读:()
ComputerScienceandApplication计算机科学与应用,2019,9(6),1061-1071PublishedOnlineJune2019inHans.
http://www.
hanspub.
org/journal/csahttps://doi.
org/10.
12677/csa.
2019.
96120文章引用:严芬,郭彩霞,乔涛.
基于代理的跨站脚本攻击防御研究[J].
计算机科学与应用,2019,9(6):1061-1071DOI:10.
12677/csa.
2019.
96120ResearchonCross-SiteScriptingAttackDefenseBasedonProxyFenYan,CaixiaGuo,TaoQiaoCollegeofInformationEngineering,YangzhouUniversity,YangzhouJiangsuReceived:May31st,2019;accepted:Jun.
11th,2019;published:Jun.
18th,2019AbstractInthefieldofnetworksecurity,crosssitescriptingisoneofthemostdestructivesecurityprob-lems.
ThispaperputsforwardakindofXSSdefenseframeworkbasedonagentafteranin-depthstudyofXSSattackmode.
Theframeworkisdeployedbetweentheclientandtheserver,andtheframeworkanalyzesandfiltersthedatabyinterceptingthecommunicationdatabetweentheclientandserverusingthealgorithm.
TheevaluationshowsthatitcannotonlyeffectivelydefenseagainstXSSattacks,butalsoprovideagoodexperiencefortheuserthroughthereleaseoflegiti-matetags.
KeywordsXSS,Defense,WebSecurity基于代理的跨站脚本攻击防御研究严芬,郭彩霞,乔涛扬州大学信息工程学院,江苏扬州收稿日期:2019年5月31日;录用日期:2019年6月11日;发布日期:2019年6月18日摘要在网络安全领域中,跨站脚本攻击已经是最严重的安全问题之一.
本文在深入研究跨站脚本攻击方式的基础上,提出了一种基于代理的跨站脚本防御框架.
该框架部署在客户端和服务器端之间,利用算法对通信数据进行深度分析和过滤,从而对跨站脚本进行有效的防御.
实验证明设计的框架不仅能对跨站脚本攻击进行有效的防御,而且可以对合法标签进行放行,为用户提供良好的访问体验.
严芬等DOI:10.
12677/csa.
2019.
961201062计算机科学与应用关键词跨站脚本攻击,防御,Web安全Copyright2019byauthor(s)andHansPublishersInc.
ThisworkislicensedundertheCreativeCommonsAttributionInternationalLicense(CCBY).
http://creativecommons.
org/licenses/by/4.
0/1.
引言跨站脚本攻击(CrossSiteScripting,XSS)是目前网络攻击中最流行的方法之一,它通过Web应用中的漏洞将恶意脚本注入到网页中[1].
针对跨站脚本攻击防御,国内外许多专家和学者都对其作了大量研究工作.
A.
Guha等人[2]提出了一种静态方法,对JavaScript脚本的XMLHttpRequest请求建立请求图,在服务器端监视用户发送的XMLHttpRequest请求,若不符合请求图则视为攻击.
该方法可以防止普通跨站脚本攻击以及跨站请求伪造攻击(Cross-SiteRequestForgery,CDRF),但是局限于分析XMLHttpRequest请求,不能防御那些不向Web程序所在服务器发送的XMLHttpRequest请求的攻击,而且此方法需要修改服务器端Web程序源代码.
Noxes[3]通过制定一系列的规则,对用户的数据在客户端进行拦截或放行,从而对跨站脚本进行有效防御,但是随着近几年跨站脚本攻击技术的不断更新,基于编码的跨站脚本攻击已经能突破Noxes的拦截规则.
2011年中国科学计算机网络入侵防范中心王夏莉提出基于行为的跨站脚本攻击检测,通过分析JavaScript命令代码的特征行为,对于危险的HTTP请求数据包放入隔离区,将其中可疑的请求操作转发给用户,由用户自身进行判断.
一般用户无法判断是否存在危险,不适合大面推广[4].
Likarish[5]使用网络爬虫工具去收集网络上的良性脚本和恶意脚本数据,提出了基于函数和代码的特征的机器学习算法.
该算法通过深度的学习之后,可以对数据进行检测区分.
但是,检测的准确度依靠机器学习的数据样本,对数据辨别的准确率还有待提高.
目前,对跨站脚本防御做的比较成功的是编码防御.
其中,对编码技术总结的比较全面的是OWASP对跨站脚本攻击作出的一系列防御规则[6].
这种防御规则确保数据在前台展示的时候都经过了编码,有效预防了危险数据在HTML文件中被引用[7].
但是,这种规则在带来安全的同时,也限制了Web应用的部分功能,使得部分合法的标签缺少使用权限,从而降低客户端用户的体验.
本着放开合法标签的目的,我们提出了一种基于代理的跨站防御方法.
该方法通过对数据的深入拆分解析,准确识别出标签是否合法、数据中是否存在脚本以及数据安全.
研究结果表明,该方法对于当前流行的跨站脚本攻击有良好的防御效果.
2.
基于代理的跨站脚本防御框架模型我们构造的基于代理的跨站脚本防御框架模型如图1所示.
防御模块由分析引擎和处理引擎两大部分组成.
分析引擎的功能是对数据进行重编码、去除干扰和整理标签处理,为下一步的处理引擎提供预处理之后的数据以及数据基本特征.
处理引擎的功能是对分析引擎传入的数据进行非法标签、非法事件和非法引用的处理,确认无风险后进行放行,并将此次处理记录日志.
该框架模型能够对合法标签进行放行,为客户端提供多功能的访问体验通过正确识别HTML标签,对跨站脚本攻击进行有效的防御.
OpenAccess严芬等DOI:10.
12677/csa.
2019.
961201063计算机科学与应用Figure1.
Agent-basedcross-sitescriptingdefenseframeworkmodel图1.
基于代理的跨站脚本防御框架模型3.
模型实现3.
1.
相关定义定义3.
1潜在风险数据:所有用户输入的数据只要满足以下特征中的任意一条,就被认为是潜在风险数据:1)数据中存在html标签;2)数据中存在一种特殊字符,如4:whilePretreatmentSsatisfyCompleteTagPattern,then5:searchthenearestCompleteTag,6:list←CompleteTag,7:findthenextCompleteTag,untilfalse,endwhile8:foreachCompleteTaginlist9:whileCompleteTagsatisfyCompleteTagPatternorCommonTagPattern,then10:sercheachnearestTag11:list←tag,12:findthenextTag,untilfalse,endwhile13:endfor14:FixedS←newRules(list){taga+tagb+…+tagm}(下标均小于list.
length)15:##删除未知标签16:foreachtagiinlist17:findTagNameofTagibyDefination3-318:TagName←Tagi19:ifTagNameisnotthecorrectHTMLTagName,then20:deletethetaginthelist,21:deletethetagintheFixedS,endif22:endfor23:##标签属性解析24:foreachtagiinlist25:divideeachTagAttributeofTagibyDefination3-326:foreachTagAttributeiintagi.
TagAttribute27:findTagAttributeNameofTagAttributeibyDefination3-328:findTagAttributeValueofTagAttributeibyDefination3-329:list{TagAttribute}←TagAttributeName:TagAttributeValue30:endfor31:tagi←TagName+list{TagAttribute}32:endfor33:returnFixedS,list{Tag}34:findTagAttributeValueofTagAttributeibyDefination3-335:list{TagAttribute}←TagAttributeName:TagAttributeValue36:endfor37:tagi←TagName+list{TagAttribute}38:endfor39:returnFixedS,list{Tag}严芬等DOI:10.
12677/csa.
2019.
961201066计算机科学与应用3.
3.
处理引擎处理引擎通过标签特征识别数据是否存在威胁,包括三个子模块,每个子模块都采用了不同规则集分别对非法标签、非法事件和非法引用进行处理.
单纯使用黑名单或者白名单算法,检测效果会不佳,因此,在以下三个子模块中,结合了黑名单和白名单共同对进行数据处理.
1)处理非法标签子模块数据在经过算法2处理之后传入处理引擎,同时数据的标签特性也传入了处理引擎.
处理非法标签子模块主要采用黑名单算对标签名进行处理.
设黑名单中的有限元素集合为List{BlackTag}={BT1,BT2,…,BTn},此时传入处理引擎的数据为整理标签算法处理后得到的FixedS和List{Tag}.
根据List{Tag}得到数据的有限标签名集合List{TagName}={TN1,TN2,…,TNm}.
对于list{TagName}中的每一个元素TNi,如果TNi∈List{BlackTag},那么删除元素TNi对应的Tag,同时对FixedS中对应的标签做删除处理.
表1列举了部分自定义的黑名单标签来说明黑名单中的规则.
Table1.
Customblacklistlabels(partial)表1.
自定义的黑名单标签(部分)HTML黑名单标签描述该标签定义超链接,由于外部链接也可以作为脚本,因此属于极危险标签,应禁止该标签用于定义客户端脚本,可直接在文档中进行脚本插入,因此属于极危险标签,应禁止该标签会建立一个html页中的框架,由于该标签的src属性可以插入脚本,可以引起跨站脚本漏洞,因此属于极危险标签,应禁止该标签为网页中的输入框,由于其可以添加脚本的属性比较多,且网页中随便插入该标签会引起网页排版混乱,因此属于极危险标签,应禁止2)处理非法事件子模块处理非法事件子模块主要采用白名单算法,针对标签属性中的标签属性名进行处理.
根据每个标签不同的特性,开放部分安全属性供用户使用,只有白名单允许的标签属性才能存在于标签中.
设此白名单中的有限元素集合为List{WhiteAttribute}={WA1,WA2,…,WAn},根据List{Tag}得到标签Tagi的有限标签属性名集合List{AttributeName}={AN1,AN2,…,ANm}.
对于ANi,只有当ANi∈List{WhiteAttribute}时,该ANi对应的标签属性予以保留,其他标签属性进行删除.
同时,对FixedS中对应的标签做删除相关标签处理.
表2列举了一些自定义的白名单标签来说明白名单中的规则.
Table2.
Customwhitelistlabels(partial)表2.
自定义的白名单标签(部分)HTML标签白名单属性说明class,id,title,dir该标签定义粗体文件,允许的属性都不允许加载script脚本src,id,height,width,title,alt该标签向网页中嵌入图像,允许的属性除src外,都不存在加载的script脚本风险.
而对src属性在下一个模块做进一步的检测src,id,width,title,height,loop该标签定义视频,在网页中嵌入视频流,允许的标签除src外,都不允许加载script脚本的风险.
而对src属性在下一模块做进一步的检测说明src,id,width,title,height,loop该标签定义视频,在网页中嵌入视频流,允许的标签除src外,都不允许加载script脚本的风险.
而对src属性在下一模块做进一步的检测说明严芬等DOI:10.
12677/csa.
2019.
961201067计算机科学与应用3)处理非法引用子模块处理非法引用子模块主要针对标签中的标签属性值,本子模块主要对恶意链接以及是否存在精心构造的脚本进行检测.
关于链接的检测,主要分为两类:第一,如果一个链接为网站应用本服务器上的链接,检测到的地址与服务器域名相同,则认为该链接安全,不对其进行处理;第二,如果该链接为跨域链接,则检测该链接是否符合标签允许值,如标签属性中的src值允许为第三方网站的URL.
但是,对于src属性,则必须包含后缀为.
jpg,.
gif,.
bmp等图像文件,否则认为其危险.
同样地,对于标签和标签,都必须检测src的值是否与标签名相符合.
另外,属性值中不能包含常见的脚本恶意字符,比如script,javascript,expression等恶意字符.
处理引擎模块的具体实现如算法3所示.
算法3:处理引擎算法Input:FixedS,list{Tag}Output:SecurityS1:##处理非法标签2:defineList{BlackTag}3:foreachtagiinlist{Tag}4:foreachBTjinList{BlackTag}5:iftagi.
TagName==BTj,then6:deletetagiinlist{Tag}7:deletetagiinFixedS,endif8:endfor9:endfor10:##处理非法事件11:defineList{WhiteAttribute}12:foreachtagiinlist{Tag}13:foreachTagAttributejintagi.
TagAttribute14:ifTagAttributej.
TagAttributeNameisnotinList{WhiteAttribute},then15:deletetagi.
TagAttributejintagi16:modifytagiinlist{Tag}17:modifytagiinFixedS,endif18:endfor19:endfor20:##处理非法引用21:DangerPattern←script,javascript,vbscript…22:foreachtagiinlist{Tag}23:foreachTagAttributejintagi.
TagAttribute24:ifTagAttributej.
TagAttributeValueisURL25:Url←TagAttributej.
TagAttributeValue26:ifUrl!
=System.
domain27:checkoutUrl严芬等DOI:10.
12677/csa.
2019.
961201068计算机科学与应用28:ifUrlisillegal29:deletetagiinlist{Tag}30:deletetagiinFixedS,endif31:endif32:endif33:endfor34:endfor35:SecurityS←FixedS36:returnSecurityS4.
实验结果与分析为了测试和验证本文提出的基于代理的跨站脚本防御方法,我们将自主研发的Web应用系统("基于Struts框架的学生报到管理系统",以下简称"报到系统")作为检测对象,并对单纯使用OWASP规则和使用本文方案中所设计的规则进行了比较.
实验主要完成以下目标:1)将攻击数据和普通数据混合,在Web应用系统中进行输入,测试防御框架的检测和防御能力.
2)将防御框架部署在实际的Web应用系统,验证本文防御框架的有效性和防御效果.
4.
1.
本文防御算法的检测防御能力验证为了证明本章提出的防御算法的有效性,我们采用了XSSCheatSheet中的数据和普通数据混合进行测试攻击,选取了XSSCheatSheet中部分数据作为实验展示.
其中,表3是原始测试数据表,表4为原始数据经过本文防御框架中分析引擎处理后的数据,表5为数据经过本文防御框架中处理引擎处理后的数据,表6为所有数据测试结果集.
Table3.
Partialtestdatainxss_payload表3.
xss_payload中部分测试数据序号原始测试数据1%3Cscript%3Ealert('XSS')C/script%3E你好2cript:alert('XSS')">hi!
34Hello!
5Table4.
Dataprocessedbytheanalysisengine表4.
经过分析引擎处理后的数据序号经过分析引擎处理后的数据标签名标签属性1alert('XSS')你好script{null}2hi!
img{"src":"javascript:alert('XSS')}3img{"src":"javascript:alert('XSS')}img{"src":"a.
gif"}4Hello!
bgsound{"src":"javascript:alert('XSS')","onload":"alert('xss')"}5style{null}img{"src":"a.
pig","onerror":"alert('xss')"}严芬等DOI:10.
12677/csa.
2019.
961201069计算机科学与应用如表4所示,原始数据经过分析引擎处理之后传入处理引擎的数据主要包含两部分:一种是经过重编码、去除干扰字符并且重新排序的数据,另一部分是数据的特性,包括标签名和标签属性.
从实验结果可以看出,分析引擎对于数据的标签分析是准确的,这对于处理引擎是否能准确处理具有决定性的作用.
Table5.
Dataprocessedbytheprocessingengine表5.
经过处理引擎处理后的数据序号经过处理引擎处理之后的数据处理原因1你好Script标签为黑名单标签2hiImg标签中src值非法3Img标签中src值非法4Hello!
Bgsound标签中src值非法,不允许存在事件5Style标签为黑名单标签,img标签中不允如表5所示,我们通过判断标签名,放开了部分合法标签,合法的标签在检查其标签属性是否合法之后,留下了安全的标签.
实验共选取200条攻击数据、200条普通数据,以及200条攻击数据与普通数据混合的数据,总共600条数据进行测试.
测试结果如表6所示.
Table6.
Thedetectionanddefenseabilitytestofthisalgorithm表6.
本文算法检测防御能力测试输入类型数量处理数量符合预期结果数量检测率是否存在跨站脚本跨站脚本20020019899%否不含特殊字符的普通数据50050100%否含特殊字符的普通数据100100100100%否含标签的普通数据505050100%否混合标签20020019798.
5%否表6可以看出,虽然少量数据与预期结果存在误差,但是所有的数据在经过处理之后均已不存在跨站脚本,说明本文方法可以成功对跨站脚本进行防御.
而产生这种误差的主要原因是在重新对标签进行排序分析的时候产生的.
由于存在采用关键字混淆编码技术的跨站脚本数据,在还原数据的过程中,可能会出现少量数据中位置顺序错误的问题.
而这部分处理对于跨站脚本攻击的检测是必不可少的.
可以认为,本文提出的防御框架可以达到比较理想的检测和防御效果.
4.
2.
本文防御算法的有效性和防御效果验证如图2所示,原有的报到系统允许评论中引用第三方网站的图片.
但是,为了防止跨站脚本攻击,使用了OWASP提供的防御规则[8],客户端用户访问报到系统时时出现了一段编码后的标签代码,大大违背了网站应用的本意.
而本文方法考虑了在尽可能地挖掘数据潜在危险数据的基础上,尽可能地放开合法标签,按照算法1和算法2提供的规则进行处理,确保数据的最大完整性和降低数据危险的前提下,将数据返回给客户端.
严芬等DOI:10.
12677/csa.
2019.
961201070计算机科学与应用Figure2.
ReportingsystemusingtheOWASPcodingframework图2.
使用OWASP编码框架的报到系统图2所使用到的防御框架是OWASP提供的编码框架,实验测试表明,该防御框架对防御跨站脚本攻击有良好的效果,但是,该框架却限制了Web应用系统的部分功能.
如图3中打标记处所示,网站的本意是允许用户在备注自由添加安全的标签,但由于编码的规则,标签全部以编码字符的形式存在,给系统的正常使用带来一定的影响.
而图3所示,该系统使用了本文防御算法后,标签功能被保留了,并且,存在脚本的标签也被成功处理.
Figure3.
Reportingsystemusingthedefensealgorithm图3.
使用本文防御算法的报到系统5.
结束语在保证数据完整性与安全性的前提下,本文提出了一种基于代理的跨站脚本漏洞的防御方法,并进行了实验分析和验证.
研究表明,本文算法不仅能有效防御跨站脚本攻击,而且还可以放开传统的Web应用对于标签的使用限制,丰富了客户端用户的体验,同时,一定程度上减少了误报率,能够很好的对跨站脚本进行防御.
基金项目"江苏省博士后科研资助计划"项目"信息安全公共服务平台及网络攻击检测技术的研究与应用"(NO:1501106C).
严芬等DOI:10.
12677/csa.
2019.
961201071计算机科学与应用参考文献[1]李威,李晓红.
Web应用存储型XSS漏洞检测方法及实现[J].
计算机应用与软件,2016,33(1):24-27.
[2]Guha,A.
,Krishnamurthi,S.
andJim,T.
(2009)UsingStaticAnalysisforAjaxIntrusionDetection.
Proceedingsofthe18thInternationalConferenceonWorldWideWeb,Madrid,20-24April2009,561-570.
https://doi.
org/10.
1145/1526709.
1526785[3]王夏莉,张玉清.
一种基于行为的XSS客户端防范方法[J].
中国科学院大学学报,2011,28(5):668-675.
[4]Likarish,P.
,Jung,E.
andJo,I.
(2009)ObfuscatedMaliciousJavascriptDetectionUsingClassificationTechniques.
In-ternationalConferenceonMaliciousandUnwantedSoftware,Montreal,13-14October2009,47-54.
https://doi.
org/10.
1109/malware.
2009.
5403020[5]鲍泽民,王根英,李娟.
跨站脚本攻击客户端防御技术研究[J].
铁路计算机应用,2015(7):17-20.
[6]Arzt,S.
,Kussmaul,T.
andBodden,E.
(2016)TowardsCross-PlatformCross-LanguageAnalysiswithSoot.
The5thACMSIGPLANInternationalWorkshop,SantaBarbara,14June2016,1-6.
https://doi.
org/10.
1145/2931021.
2931022[7]刘达.
通过HTML编码防御XSS跨站脚本攻击的研究[J].
信息安全与技术,2016,7(6):23-24.
[8]OWASP(2017)XSS(CrossSiteScripting)PreventionCheatSheet.
http://www.
owasp.
org/index.
php/XSS_(Cross_Site_Scripting)_Prevention_Cheat_Sheet知网检索的两种方式:1.
打开知网页面http://kns.
cnki.
net/kns/brief/result.
aspxdbPrefix=WWJD下拉列表框选择:[ISSN],输入期刊ISSN:2161-8801,即可查询2.
打开知网首页http://cnki.
net/左侧"国际文献总库"进入,输入文章标题,即可查询投稿请点击:http://www.
hanspub.
org/Submission.
aspx期刊邮箱:csa@hanspub.
org

傲游主机38.4元起,韩国CN2/荷兰VPS全场8折vps香港高防

傲游主机怎么样?傲游主机是一家成立于2010年的老牌国外VPS服务商,在澳大利亚及美国均注册公司,是由在澳洲留学的害羞哥、主机论坛知名版主组长等大佬创建,拥有多家海外直连线路机房资源,提供基于VPS主机和独立服务器租用等,其中VPS基于KVM或者XEN架构,可选机房包括中国香港、美国洛杉矶、韩国、日本、德国、荷兰等,均为CN2或者国内直连优秀线路。傲游主机提供8折优惠码:haixiuge,适用于全...

提速啦(24元/月)河南BGP云服务器活动 买一年送一年4核 4G 5M

提速啦的来历提速啦是 网站 本着“良心 便宜 稳定”的初衷 为小白用户避免被坑 由赣州王成璟网络科技有限公司旗下赣州提速啦网络科技有限公司运营 投资1000万人民币 在美国Cera 香港CTG 香港Cera 国内 杭州 宿迁 浙江 赣州 南昌 大连 辽宁 扬州 等地区建立数据中心 正规持有IDC ISP CDN 云牌照 公司。公司购买产品支持3天内退款 超过3天步退款政策。提速啦的市场定位提速啦主...

BuyVM($5/月),1Gbps不限流量流媒体VPS主机

BuyVM针对中国客户推出了China Special - STREAM RYZEN VPS主机,带Streaming Optimized IP,帮你解锁多平台流媒体,适用于对于海外流媒体有需求的客户,主机开设在拉斯维加斯机房,AMD Ryzen+NVMe磁盘,支持Linux或者Windows操作系统,IPv4+IPv6,1Gbps不限流量,最低月付5加元起,比美元更低一些,现在汇率1加元=0.7...

爬虫代理为你推荐
企业cms目前最好用的企业cms是哪个?http404未找到打开网页提示HTTP 404未找到文件centos6.5centos7和centos6.5的区别重庆400年老树穿楼生长重庆海拔500左右的红沙土适合栽哪种果树360公司迁至天津360公司前身是中国吗?现总裁是谁?flashfxp下载怎样用FlashFXP从服务器下载到电脑上?netshwinsockreset电脑开机老是出现wwbizsrv.exe 应用程序错误 怎么处理客服电话赶集网客服电话是多少科创板首批名单科创板开市后,可以通过哪些基金参与科创板投资和打新股?zhuo爱大涿爱— 金鱼花火 、 歌词给我翻译过来。!
北京服务器租用 韩国vps 双线vps 漂亮qq空间 西安电信测速 联通c套餐 kvmla 便宜建站 租空间 帽子云 hinet 支付宝扫码领红包 1元域名 德隆中文网 美国迈阿密 带宽测试 umax 博客域名 数据湾 第八届中美互联网论坛 更多