{{ p} s t.联系我们_联系我们_联系我们<联系我们我们的研究结果表明,当一个框架内置了安全控制(缓解级别L4)时,使用该框架编写的易受攻击项目的百分比要低得多(AngularJS中为12%,而不是L4)。Jade/Pug中38%或EJS中43%虽然基于安全HTML子集执行清理的安全控件可以与Jade/Pug和EJS一起作为外部第三方库使用(例如,使用markdown[17]或Google Caja Sanitizer [28]),但它们不是框架本身的一部分,并且需要开发人员方面的额外努力当这种缓解措施被构建到框架本身中时,如L4方法中所定义的,在框架之上创建的应用程序我们的数据证明了我们的假设:安全控制的实现越接近框架本身,应用程序的漏洞就越少。·开发人员跟踪WWW 2018,2018年4月23日至27日,法国里昂757表3:混杂变量的P值标准p值开发者0.319279开发人员0.132049%项目规模0.431335%项目人气0.200649%项目复用0.211615%模板引擎0.001021%在获得这些结果之后,我们还对我们选择的应用程序样本进行了ANOVA统计我们进行了混淆变量分析,以确保我们获得的漏洞数量不是不同因素的结果 我们分析了以下因素:1)开发者的总体经验(通过GitHub上的项目数量来衡量);2)开发者的JavaScript经验(GitHub上的JavaScript相关项目数量);3)项目大小; 4)项目知名度(星级数);项目重用(分支数量)。对这些因素中的每一个进行的方差分析测试表明,这些因素中没有一个对项目具有的漏洞数量具有统计学上的显著影响。唯一显示出统计学显著差异的因素是应用程序使用的模板引擎类型,因此,缓解级别的选择:L4与 L1或L2(见表3)。基于我们的假设,并通过数据证明,我们对框架开发人员和维护人员的建议将安全控件实现为插件或第三方库会使它们不太可能被开发人员使用或正确使用如果我们专门研究XSS漏洞,AngularJS会为所有字段实现开箱即用的输出编码(使用ngBind指令或双花括号语法)。对于需要输出HTML结构的字段,当使用ngBindHtml指令时,只有当开发者如果需要输出所有HTML而不进行任何清理或过滤,则必须显式调用$sce.trustAsHtml()函数,然后将其输出发送到ngBindHtml指令。因此,框架保护应用程序不受XSS的影响,并保护开发人员不犯固有的错误.这些创建安全框架的建议不仅应该用于XSS保护,还应该用于其他漏洞,例如跨站点请求伪造(CSRF)和不同的注入问题(SQL注入,OS命令注入,邮件注入等)。开发人员为他们的应用程序选择框架的主要信息是通过已经构建到框架中的缓解或安全控制的数量来评估框架的安全性。 如果框架固有地实现了对注入问题的保护,则CSRF、XSS、认证和授权控制,并且这些功能具有安全的默认设置,即它们在默认情况下是打开的,因此在这些框架之上开发的应用程序很可能具有更少的漏洞。4相关工作以前关于JavaScript应用程序和框架的安全性的工作集中在以下三个方面。JavaScript安全。 研究JavaScript应用程序的安全性无 论 使 用 的 框 架 如 何 , 它 们 本 身 通 常 都 专 注 于 客 户 端JavaScript,识别JavaScript包含,动态生成和其他错误[18,20,30,33]。使用Node.js或Express.js等框架编写的服务器端JavaScript代码的安全性没有受到太多关注JavaScript分析与测试Saxena和Li研究了测试JavaScript代码的符号执行方法[16,29]。Artzi和Jensen分析了客户端JavaScript的自动化测试[3,13]。然而,这些方法没有集中在安全方面。以安全为重点的框架分析包括以下分析其他语言的框架,不包括JavaScript。例如,J.Wenberger分析了PHP、Ruby、Python、Java中Web框架中的XSS清理[31,32]。 以前对JavaScript框架的分析着眼于性能、质量和文档,但没有考虑安全特性[10,11]。因此,据我们所知,这是第一个研究框架选择对全栈JavaScript应用程序安全性的影响的研究。5结论在本文中,我们考虑了可以在Web应用程序中实现的XSS漏洞的四种可能的缓解级别我们的分析集中在JavaScript框架上,选择了三个流行的模板引擎,它们在不同的级别上实现了安全控制:Jade/Pug和EJS应用程序需要L1级(自定义函数)和L2级(第三方库)的控制,而AngularJS在L4级(内置功能)有控制。我们分析了框架的选择以及缓解控制的级别如何影响开源项目中发现的XSS漏洞的数量我们使用统计分析来确认没有其他混杂变量影响产生的结果。我们取得的结果表明,缓解控制的水平有显着影响的安全应用程序。当缓解控制被构建到框架本身中时,构建在该框架之上的应用程序具有低得多在本文研究的用例中,即,当开发人员需要在用户输入中只输出“安全”的HTML标签时(为了避免XSS),只有11.76%的分析AngularJS项目存在XSS漏洞,而Jade/Pug项目和EJS项目的XSS漏洞比例分别为38.46%对于本文研究的用例,我们的初步结果表明,框架维护者应该考虑在他们的框架中构建安全控件,以提高应用程序的整体安全性,而不是把选择安全控件的负担放在开发人员身上。然而,我们的研究结果只涵盖了一个常见的Web漏洞(XSS),并且只在一个相当特定的场景中。为了在更广泛的应用程序、漏洞和安全控制上证明这一点,并就框架的选择如何影响应用程序的安全性得出更广泛的结论,我们需要进行更广泛的研究,包括开发人员跟踪WWW 2018,2018年4月23日至27日,法国里昂758其他安全漏洞和更广泛的缓解策略。引用[1] AngularJS。2017年。文档:$sce。(2017年)。2017年10月15日检索自https://docs.angularjs.org/api/ng/service/$sce[2] ESLint Node.js API。2017年。(2017年)。2 0 1 7 年10月17日,从http://eslint检索。org/docs/developer-guide/nodejs-api[3] S. Artzi,J. Dolby,S.詹森,A. Moeller和F. Tip. 2011. JavaScript Web应用程序自动化测试框架在proc 第33届软件工程国际会议571-580[4] EJS 2017.(2017年)。2017年10月17日检索自https://github.com/mde/ejs[5] EJS-Lint 。 2017. ( 2017 年 ) 。 2017 年 10 月 17 日 检 索 自https://github.com/RyanZim/EJS-Lint[6] ESLint2017 年 。 ( 2017 年 ) 。 2017 年 10 月 17 日 检 索 自https://github.com/eslint/eslint[7] ESLint-plugin-pug 。2017 年 。 ( 2017 年 ) 。 2017 年10 月 15 日从 https ://github检索。com/myfreeweb/eslint-plugin-pug[8] XSS 过 滤 器 。 2017 年 。 ( 2017 年 ) 。 于 2017 年 10 月 15 日 从https://msdn.microsoft。com/en-us/library/dd565647(v=vs.85).aspx[9] Fis-parser-ejs 。 2013 年 。 ( 2013 年 ) 。 2017 年 10 月 17 日 从https://github.com/fouber/fis-parser-ejs检索[10] A. Gizas,S.Christodoulou和T.Papatheodorou 2012年。JavaScript框架的比较 在proc 第21届万维网国际会议513-514[11] D. Graziotin 和 P. 亚 伯 拉 罕 森 2013 年 。 Making Sense Out of a Jungle ofJavaScript frameworks:Towards a practitioner-friendly comparative analysis.在proc 第14届以产品为中心的软件过程改进国际会议(PROFES)334-337[12]C. 海因里希. 2017年。2003年、2004年、2007年、2010年和2013年版本的比较(2017年)。2017年10月15日检索自https://raw.githubusercontent.com/cmlh/OWASP-Top-Ten-2010/Release_Candidate/OWASP_Top_Ten_-_Comparison_of_2003,_2004,_2007,_2010_and_2013_Releases-RC 1.pdf[13] C.詹森,A. Moeller和Z.苏2013. JavaScript Web应用程序自动测试的服务器接口描述 在proc 第九届软件工程基础联席会议510-520[14] V. Kashyap 等人 2014. JSAI: JavaScript 的静态分析平 台。第22届 ACMSIGSOFT软件工程基础国际研讨会论文集。121-132[15] ksdmitrieva。2017年。分析管道。(2017年)。2017年12月10日检索自https://github.com/ksdmitrieva/AnalysisPipeline[16] G. Li,E.安德瑞森和我高希2014. SymJS:JavaScript Web应用程序的自动符号测试。第22届ACM SIGSOFT国际会议论文集软件工程基础研讨会。449-459[17] Markdown2017.(2017年)。2017年10月15日从https://github.com/evilstreak/markdown-js[18] N. Nikiforakis等人2012.你就是你所包含的:远程JavaScript包含的大规模评估。ACM计算机与通信安全。736-747[19] NoScript。2017.(2017年)。 2017年10月15日检索自https://noscript.net/[20] F. 奥卡利萨湾巴贾杰湾Pattabiraman和A.梅斯巴2013年。客户端JavaScriptbug的实证IEEEInternational Symposium on Empirical Software Engineeringand Measurement.[21] F. 奥卡利萨湾巴贾杰湾Pattabiraman和A.梅斯巴2015年。检测JavaScriptMVC应用程序中的不一致性ACM第37届IEEE软件工程国际会议(ICSE)[22] OWASP 。 2017. Top 10 - 2017 候 选 发 布 版 本 。 ( 2017 年 ) 。2017https://github.com/OWASP/Top10/raw/master/2017/OWASP%20Top% 年 5 月15日检索自www.example.com 2010%20-%202017%20RC1-English.pdf[23] OWASP 。 2017. 十 大 工 程 。 ( 2017 年 ) 。 2017 年 9 月 29 日 检 索 自https://www.owasp.org/index.php/Category:OWASP_Top_Ten_Project[24] I. Parameshvaran,E. Budianto和S.辛德2015.自动修补基于DOM的XSS。 在proc 第10届软件工程基础联席会议。272-283.[25] 哈巴狗2016.(2016年)。2017年10月15日从https://github.com/pugjs/pug-lexer[26] Pug-parser 。 2017. ( 2017 年 ) 。 2017 年 10 月 15 日 从https://github.com/pugjs/pug-parser[27] 唐纳德·雷和杰伊·利加蒂2012.定义代码注入攻击。第39届ACM SIGPLAN-SIGACT 程 序 设 计 语 言 原 理 研 讨 会 ACM , New York , NY , USA ,179https://doi.org/10.1145/2103656.2103678[28] Caja HTML Sanitizer。2017. (2017年)。2017年10月15日从https://github.com/theSmaw/Caja-HTML-Sanitizer[29] P. Saxena等人2010年。JavaScript的符号执行框架 在proc IEEE安全与隐私研讨会513-528[30] A. Taly,U.Erlingsson,J.米切尔,M。Miller和J.纳格拉2011年。自动化分析安全关键的JavaScript API。 在proc IEEE安全与隐私研讨会363-378[31] Weinberger等人2011年。 Web应用程序框架中XSS清理的实证分析。 在加州大学伯克利分校EECS系,技术报告No. UCB/EECS-2011-11。[32] Weinberger等人2011. Web应用程序框架中XSS清理的系统分析。第16届欧洲计算机安全研究会议论文集。150-171[33] C. Yue和H.王. 2009.描述Web上不安全的JavaScript实践。 在proc 第18届万维网国际会议961-970
下载后可阅读完整内容,剩余1页未读,立即下载
- 粉丝: 4
- 资源: 2万+
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- zigbee-cluster-library-specification
- JSBSim Reference Manual
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx