Detecting and Understanding Java']JavaScript Global Identifier Conflicts on the Web

被引:7
|
作者
Zhang, Mingxue [1 ]
Meng, Wei [1 ]
机构
[1] Chinese Univ Hong Kong Hong, Hong Kong, Peoples R China
关键词
!text type='Java']Java[!/text]Script; Identifier conflicts; Web applications;
D O I
10.1145/3368089.3409747
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
JavaScript is widely used for implementing client-side web applications, and it is common to include JavaScript code from many different hosts. However, in a web browser, all the scripts loaded in the same frame share a single global namespace. As a result, a script may read or even overwrite the global objects or functions in other scripts, causing unexpected behaviors. For example, a script can redefine a function in a different script as an object, so that any call of that function would cause an exception at run time. We systematically investigate the client-side JavaScript code integrity problem caused by JavaScript global identifier conflicts in this paper. We developed a browser-based analysis framework, JSO(BSERVER), to collect and analyze the write operations to global memory locations by JavaScript code. We identified three categories of conflicts using JSO(BSERVER) on the Alexa top 100K websites, and detected 145,918 conflicts on 31,615 websites. We reveal that JavaScript global identifier conflicts are prevalent and could cause behavior deviation at run time. In particular, we discovered that 1,611 redefined functions were called after being overwritten, and many scripts modified the value of cookies or redefined cookie-related functions. Our research demonstrated that JavaScript global identifier conflict is an emerging threat to both the web users and the integrity of web applications.
引用
收藏
页码:38 / 49
页数:12
相关论文
共 50 条
  • [1] POSTER: Finding Java']JavaScript Name Conflicts on the Web
    Zhang, Mingxue
    Meng, Wei
    Wang, Yi
    PROCEEDINGS OF THE 2019 ACM SIGSAC CONFERENCE ON COMPUTER AND COMMUNICATIONS SECURITY (CCS'19), 2019, : 2609 - 2611
  • [2] ConflictJS']JS: Finding and Understanding Conflicts Between Java']JavaScript Libraries
    Patra, Jibesh
    Dixit, Pooja N.
    Pradel, Michael
    PROCEEDINGS 2018 IEEE/ACM 40TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE), 2018, : 741 - 751
  • [3] Web applets: Java']Java Java']JavaScript and ActiveX
    Stein, L
    TRENDS IN GENETICS, 1996, 12 (11) : 484 - 485
  • [4] Detecting Concurrency Errors in Client-side Java']JavaScript Web Applications
    Hong, Shin
    Park, Yongbae
    Kim, Moonzoo
    2014 IEEE SEVENTH INTERNATIONAL CONFERENCE ON SOFTWARE TESTING, VERIFICATION AND VALIDATION (ICST), 2014, : 61 - 70
  • [5] Detecting Java']JavaScript Races That Matter
    Mutlu, Erdal
    Tasiran, Serdar
    Livshits, Benjamin
    2015 10TH JOINT MEETING OF THE EUROPEAN SOFTWARE ENGINEERING CONFERENCE AND THE ACM SIGSOFT SYMPOSIUM ON THE FOUNDATIONS OF SOFTWARE ENGINEERING (ESEC/FSE 2015) PROCEEDINGS, 2015, : 381 - 392
  • [6] Detecting Function Constructors in Java']JavaScript
    Rostami, Shahriar
    Eshkevari, Laleh
    Mazinanian, Davood
    Tsantalis, Nikolaos
    32ND IEEE INTERNATIONAL CONFERENCE ON SOFTWARE MAINTENANCE AND EVOLUTION (ICSME 2016), 2016, : 488 - 492
  • [7] Detecting Function Purity in Java']JavaScript
    Nicolay, Jens
    Noguera, Carlos
    De Roover, Coen
    De Meuter, Wolfgang
    2015 IEEE 15TH INTERNATIONAL WORKING CONFERENCE ON SOURCE CODE ANALYSIS AND MANIPULATION (SCAM), 2015, : 101 - 110
  • [8] Semantics and Analyses for Java']JavaScript and the Web
    Krishnamurthi, Shriram
    STATIC ANALYSIS, SAS 2012, 2012, 7460 : 4 - 4
  • [9] Essential Java']JavaScript for Web professionals
    Corder, MC
    TECHNICAL COMMUNICATION, 2004, 51 (03) : 429 - 430
  • [10] Spam and Java']JavaScript, future of the web
    Andrew, Alex M.
    KYBERNETES, 2008, 37 (9-10) : 1463 - 1465