文件Open Access徽标

事件驱动Web应用程序符号分析的可信基础结构

作者 加布里埃拉·桑帕约, 何塞·弗拉戈索·桑托斯, 彼得·马克西莫维奇, 菲利帕·加德纳



PDF格式
缩略图PDF

文件

LIPIcs公司。ECOOP.2020.28.pdf版
  • 文件大小:1.72 MB
  • 29页

文件标识符

作者详细信息

加布里埃拉·桑帕约
  • 英国伦敦帝国理工学院
何塞·弗拉戈索·桑托斯
  • 葡萄牙里斯本大学高等教育学院
  • 英国伦敦帝国理工学院
彼得·马克西莫维奇
  • 英国伦敦帝国理工学院
菲利帕·加德纳
  • 英国伦敦帝国理工学院

引用为获取BibTex

Gabriela Sampaio、JoséFragoso Santos、Petar Maksimović和Philippa Gardner。事件驱动Web应用程序符号分析的可信基础结构。第34届欧洲面向对象编程会议(ECOOP 2020)。莱布尼茨国际信息学论文集(LIPIcs),第166卷,第28:1-28:29页,达格斯图尔-莱布尼兹-泽特鲁姆信息学院(2020)
https://doi.org/10.4230/LIPIcs.ECOOP.2020.28

摘要

我们引入了一个可信的基础设施,用于现代事件驱动Web应用程序的符号分析。该基础设施由DOM核心级别1、DOM UI事件、JavaScript承诺和JavaScript异步/等待API的参考实现组成,所有这些都由一个简单的核心事件语义支撑,该语义足以描述这些API的事件模型。我们的参考实现是值得信赖的,因为三种实现都遵循相应的标准逐行进行,并且都经过了官方测试套件的彻底测试,通过了所有适用的测试。使用核心事件语义和参考实现,我们开发了JaVerT。Click是JavaScript的符号执行工具,它首次支持对使用多个事件相关API的JavaScript程序进行推理。我们证明了JaVerT的可行性。通过证明真实世界JavaScript代码中存在和不存在错误来点击。

主题分类

ACM科目分类
  • 软件及其工程→正式软件验证
  • 软件及其工程→软件测试和调试
关键词
  • 事件
  • 多姆
  • JavaScript脚本
  • 承诺
  • 符号执行
  • 错误查找

韵律学

工具书类

  1. S.Alimadadi、D.Zhong、M.Madsen和F.Tip。在异步JavaScript程序中发现失约。PACMPL,2(OOPSLA):162:1-162:262018年。谷歌学者
  2. R.Baldoni、E.Coppa、D.Cono D'Elia、C.Demetrescu和I.Finocchi。符号执行技术综述。ACM计算调查,51(3):50:1-50:392018。谷歌学者
  3. C.Cadar、P.Godefroid、S.Khurshid、C.S.P'Séreanu、K.Sen、N.Tillmann和W.Visser。软件测试实践中的符号执行:初步评估。ICSE,2011年。谷歌学者
  4. C.Cadar和K.Sen.软件测试的符号执行:三十年后。Commun公司。ACM,56:82-902013年。谷歌学者
  5. C.Calcagno、P.Gardner和U.Zarfaty。上下文逻辑和树更新。在POPL,2005年。谷歌学者
  6. ECMA TC39。Test262测试套件。https://github.com/tc39/test262,于2020年5月访问。
  7. ECMA TC39。ECMAScript标准。https://www.ecma-international.org/publications/standards/ecma-262.htm,于2020年5月访问。
  8. ECMA TC39。ECMAScript标准-第6版。http://www.ecma-international.org/ecma-262/6.0/,于2020年5月访问。
  9. ECMA TC39。ECMAScript标准-第9版。http://www.ecma-international.org/ecma-262/9.0/,于2020年5月访问。
  10. A.M.Fard、A.Mesbah和E.Wohlstadter。为JavaScript单元测试生成Fixtures(T)。在ASE,2015年。谷歌学者
  11. J.Fragoso Santos、P.Maksimović、S.-E.Ayoun和Philippa G.Gillian,第1部分:符号执行的多语言框架。PLDI,2020年。谷歌学者
  12. J.Fragoso Santos、P.Maksimović、T.Grohens、J.Dolby和P.Gardner。JavaScript的符号执行。2018年PPDP。谷歌学者
  13. J.Fragoso Santos、P.Maksimović、G.Sampaio和P.Gardner。JaVerT 2.0:JavaScript的合成符号执行。PACMPL,3(POPL):2019年第66期。谷歌学者
  14. K.Gallaba、A.Mesbah和I.Beschastnikh。不要给我们打电话,我们会给你打电话:用Javascript描述回调。ESEM,2015年。谷歌学者
  15. P.Gardner、G.Smith、M.J.Wheelhouse和U.Zarfaty。关于DOM的局部恶作剧推理。PODS,2008年。谷歌学者
  16. Gargoyle软件公司HTMUnit。http://htmlunit.sourceforge.io/,于2020年5月访问。
  17. A.Guha、C.Saftou和S.Krishnamurthi。Javascript的本质。在ECOOP,2010年。谷歌学者
  18. S.Holm Jensen、M.Madsen和A.Möller。在JavaScript Web应用程序的静态分析中建模HTML DOM和浏览器API。ESEC/FSE,2011年。谷歌学者
  19. B.S.Lerner、M.J.Carroll、D.P.Kimmel、H.Quay-De La Vallee和S.Krishnamurthi。DOM事件的建模和推理。在WebApps中,2012年。谷歌学者
  20. G.Li、E.Andreasen和I.Ghosh。SymJS:JavaScript Web应用程序的自动符号测试。在FSE,2014年。谷歌学者
  21. M.Loring、M.Marron和D.Leijen。异步javascript的语义。DLS,2017年。谷歌学者
  22. M.Madsen、O.Lhoták和F.Tip。JavaScript承诺推理模型。PACMPL,1(OOPSLA):86:1-86:24,2017年。谷歌学者
  23. M.Madsen、F.Tip和O.Lhotak。Event-Driven Node.js JavaScript应用程序的静态分析。2015年,OOPSLA。谷歌学者
  24. A.Almeida Matos、J.Fragoso Santos和T.Rezk。DOM核心的信息流监视器-引入引用和活动原语。TGC,2014年。谷歌学者
  25. Mozilla。MDN Web文档。http://developer.mozilla.org/en-US/,于2020年5月访问。
  26. Mozilla。使用阴影DOM。https://developer.mozilla.org/en-US/docs/Web/Web_Components/Using_shadow_DOM,于2020年5月访问。
  27. C.Park、S.Won、J.Jin和S.Ryu。通过实际DOM建模(T)对JavaScript Web应用程序进行静态分析。ASE,2015年。谷歌学者
  28. J.Gibbs Politz、S.A.Eliopoulos、A.Guha和S.Krishnamurthi。ADsafety:基于类型的JavaScript沙盒验证。在2011年USENIX安全研讨会上。谷歌学者
  29. V.Rajani、A.Bichhawat、D.Garg和C.Hammer。事件处理的信息流控制和Web浏览器中的DOM。2015年,CSF。谷歌学者
  30. 亚历杭德罗·拉索(Alejandro Russo)、安德烈·萨贝尔菲尔德(Andrei Sabelfeld)和安德烈·丘德诺夫(Andrey Chudnov)。跟踪动态树结构中的信息流。在ESORICS,2009年。谷歌学者
  31. G.Sampaio、J.Fragoso Santos、P.Maksimović和P.Gardner。事件驱动Web应用程序符号分析的可信基础设施(技术报告)。https://vtss.doc.ic.ac.uk/publications/Sampaio2020Trusted.pdf,于2020年5月访问。
  32. J.弗拉戈索·桑托斯(J.Fragoso Santos)、P.Maksimović(P.马克西莫维奇)、D.Naudíiániené(D.Naudći­nienö)、T.伍德(T.Wood)和P.加德纳。JaVerT:JavaScript验证工具链。PACMPL,2(pop):50:1-50:32018。谷歌学者
  33. K.Sen、S.Kalasapur、T.G.Brutch和S.Gibbs。Jalangi:JavaScript的选择性记录回放和动态分析框架。2013年ESEC/FSE’13。谷歌学者
  34. G.史密斯。关于Web程序的本地推理。2011年,英国帝国理工学院博士论文。谷歌学者
  35. 山楂属。p-map(GitHub)。https://github.com/sindresorhus/p-map,于2020年5月访问。
  36. 山楂属。p-map(npm)。https://www.npmjs.com/package/p-map,于2020年5月访问。
  37. C.Sung、M.Kusano、N.Sinha和C.Wang。用于测试Web应用程序的静态DOM事件依赖性分析。FSE,2016年。谷歌学者
  38. 方案团队。算法语言方案的修订报告。https://schemers.org/Documents/Standards/R5RS/R5RS.pdf,于2020年5月访问。
  39. PreactJS团队。PreactJS库。http://preactjs.com,于2020年5月访问。
  40. ReactJS团队。ReactJS库。http://reactjs.org,于2020年5月访问。
  41. WebKit团队。WebKit浏览器引擎。https://webkit.org,于2020年5月访问。
  42. 彼得·蒂曼(Peter Thiemann)。类型安全DOM API。DBPL,2005年。谷歌学者
  43. E.Torlak和R.Bodík。使用Rosette增长解算器辅助语言。前进!,2013谷歌学者
  44. E.Torlak和R.Bodík。用于求解辅助主机语言的轻量级符号虚拟机。PLDI,2014年。谷歌学者
  45. M.Vanheof、W.De Groef、D.Devriese、F.Piessens和T.Rezk。事件驱动程序的状态解密策略。2014年,CSF。谷歌学者
  46. W3C公司。DOM核心1级官方测试套件。http://www.w3.org/2004/04/ecmascript/level1/core/,于2020年5月访问。
  47. W3C公司。DOM核心1级规范。http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/Level-one-core.html,于2020年5月访问。
  48. W3C公司。DOM核心2级规范。http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/,于2020年5月访问。
  49. W3C公司。DOM核心3级规范。http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/,于2020年5月访问。
  50. W3C公司。DOM Events官方测试套件。https://github.com/web-platform-tests/wpt/tree/master/dom/events,于2020年5月访问。
  51. W3C公司。文件API。http://www.w3.org/TR/FileAPI/,于2020年5月访问。
  52. W3C公司。HTML标准。http://html.spec.whatwg.org/multipage/workers.html#workers,于2020年5月访问。
  53. WHATWG公司。DOM API规范。http://dom.spec.whatwg.org,于2020年5月访问。
  54. WHATWG公司。postMessage API。https://html.spec.whatwg.org/multipage/web-messaging.html#发布-消息,于2020年5月访问。
  55. K.Wheeler、S.Shaw和F.Spampinato。现金(GitHub)。https://github.com/kenwheler/cash,于2020年5月访问。
  56. K.Wheeler、S.Shaw和F.Spampinato。现金(npm)。https://www.npmjs.com/package/cash-dom,于2020年5月访问。
  57. wpt.fyi公司。事件浏览器符合性。http://wpt.fyi/results/dom/events,于2020年5月访问。
  58. Y.纳什瓦恩。xml-js:xml文本和Javascript对象/JSON文本之间的转换器实用程序。http://www.npmjs.com/package/xml-js,于2020年5月访问。
  59. 邹毅、陈振中、郑毅、张欣和高振中。虚拟DOM覆盖:推动动态Web应用程序的有效测试。ISSTA,2014年。谷歌学者
问题/备注/反馈
X(X)

Dagstuhl出版社反馈


感谢您的反馈!

已提交反馈

无法发送消息

请稍后再试或发送电子邮件