{'fraction_non_alphanumeric': 0.022458628841607566, 'fraction_numerical': 0.0002955082742316785, 'mean_word_length': 5.177007299270073, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Information Flow Control for the Web Browser through a Mechanism of Split Addresses. (Contrôle du flux d'informations pour le navigateur Web via un mécanisme de séparation d'adressage)

The modern world has evolved to the point where many services such as banking and shopping are provided thanks to web applications. These Web applications depend on server-side as well as client-side software. Because these web applications provide to users sensitive services such as banking and shopping, their security is of pivotal importance. From the server side, the range of the security threats includes attacks such as denial of service, security misconfiguration and injection of malicious code (i.e. SQL injection). From the client side, major part of the security issues come with the web browser that is the interface between the users and server side application: as any software, it can be subject to attacks such as buffer overflows. However, it is not sufficient to independently prevent security threats from each side, because some security issues of web applications are intrinsic to the web applications themselves. For instance, the modern internet consists of several webpages which are mashup webpages. A mashup, in web development, is a web page, or web application, that uses content from more than one source to create a single new service displayed in a single graphical interface. More generally, the difficulty of web application security lies in the fact that exploiting a server-side vulnerability can have a client-side impact, and vice versa. It must be noted that many vulnerabilities on the server side such as Cross-Site Scripting (XSS) and Cross-Site Request Forgery (CSRF) have a direct impact on the web browser.In this thesis, we focus on the client side security of the web browsers, and limit ourselves to the context of Javascript. We do not consider solving the vulnerabilities themselves but providing a mechanism where user’s sensitive information is protected from disclosure (confidentiality) as well as unauthorized modifications (integrity) despite the vulnerability being exploited. For that purpose, we affirm that the vulnerabilities based on malicious script are characterized by illegal information flows. Hence, we propose an approach based on Information Flow Control (IFC). Indeed, IFC-based approaches are more encompassing in their scope to solve problems and also provide more streamlined solutions to handling the information security in its entirety. Our approach is based on a practical IFC model, called Address Split Design (ASD), that consists in splitting any variable that contains sensitive data and maintaining the symbol table to protect accesses to the secret part of these variables. We have implemented our model on the chromium V8 engine, a full-fledged JavaScript engine. Following the implementation, performance and conformance testing have been done on our implementation. The measured performance drop is significantly smaller than other comparative approaches. We further showed that implementation of our approach does not affect the general working of existing websites by performing such a test over the top websites of the internet. Further, we have also been able to verify that our model can be used to protect variables in several scenarios that would have otherwise caused disclosure of secret information.