Sémantique et sécurité des applications Web
Institution:
NiceDisciplines:
Directors:
Abstract EN:
In this work we study the formal semantics and security problems of Web applications. The thesis is divided into three parts. The first part proposes a small-step operational semantics for a multitier programing language HOP, which can be used to globally reasoning about Web applications. The semantics covers a core of the HOP language, including dynamic generations of client code, and interactions between servers and clients. The second part studies a new technique to automatically prevent code injection attacks, based on multitier compilation. We add a new phase in the compiler to compare the intended and the actual syntax structure of the output. The validity of our technique is proved correct in the operational semantics of HOP. The last part of the thesis studies Mashic, a source-to-source compiler of JavaScript to isolate untrusted script by ifram sandbox and postmessage in HTML5. The compiler is proved correct in a formal semantics of JavaScript.
Abstract FR:
Dans ce travail, nous étudions la sémantique formelle et des problèmes de sécurité des applications Web. La thèse est divisée en trois parties. La première partie propose une sémantique opérationnelle à petits pas pour un langage de programmation multiniveaux HOP, qui peut être utilisé pour raisonner globalement sur les applications Web. La sémantique couvre un cœur du langage HOP, y compris les générations dynamiques de code client, et les interactions entre les serveurs et les clients. La deuxième partie étudie une nouvelle technique pour empêcher automatiquement des attaques par injection de code, basé, sur la compilation multiniveaux. Nous ajoutons une nouvelle phase dans le compilateur pour comparer la structure de la syntaxe de la sortie. La validité de notre technique est prouvée correcte avec la sémantique opérationnelle de HOP. La dernière partie de la thèse propose Mashic, un compilateur source-à-source de Javascript pour isoler mashup par iframe sandbox et PostMessage dans le HTML5. Le compilateur est prouvé correct avec une sémantique formelle de JavaScript.