Efficient and secure document rendering from multiple similar untrusted sources
Efektivní a bezpečné generování dokumentů z více podobných, nedůvěryhodných zdrojů
Authors
Supervisors
Reviewers
Editors
Other contributors
Journal Title
Journal ISSN
Volume Title
Publisher
České vysoké učení technické v Praze
Czech Technical University in Prague
Czech Technical University in Prague
Date
Abstract
Dříve mohli upravovat obsah projektu pro vzdělávací materiály Nauč se Python! jen důvěryhodní správci. Cílem této práce bylo umožnit vykreslovat některý obsah z forků hlavního gitového repozitáře, nicméně ale bezpečně a efektivně. Toho bylo dosáhnuto implementací nástroje, který dokáže spustit kód v Pythonu pod nastavitelnou úrovní izolace a uchovávat výsledky dluhodobě v mezipaměti. Tento nástroj byl následně integrován do projektu Nauč se Python!, kde vykresluje části obsahu v izolovaném prostředí, buď v Docker kontejnerech nebo na virtuálním stroji pomocí Vagrantu. Integrace také umožňuje sdílení částí obsahu napříč repozitáři.
Previously, only trusted maintainers could modify the content of Nauč se Python!, a project for educational content deployed to the web. The goal of this thesis was to allow for some of the content to be rendered from forks of the base Git repository, but safely and efficiently. That was accomplished by creating a tool which can run Python code in various levels of isolation and cache the results. This tool was then integrated into the Nauč se Python! project, building parts of the website in an isolated environment, either in Docker containers or in virtual machines managed by Vagrant, and sharing appropriate content fragments across repositories.
Previously, only trusted maintainers could modify the content of Nauč se Python!, a project for educational content deployed to the web. The goal of this thesis was to allow for some of the content to be rendered from forks of the base Git repository, but safely and efficiently. That was accomplished by creating a tool which can run Python code in various levels of isolation and cache the results. This tool was then integrated into the Nauč se Python! project, building parts of the website in an isolated environment, either in Docker containers or in virtual machines managed by Vagrant, and sharing appropriate content fragments across repositories.