windows - hvordan man laver en sikker online compiler

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg vil gerne gøre enkel online-compiler, der tager kode fra browser, sende den til server, kompilere den og returnere til browserens resultat af udførelse.


Jeg er bange for, at nogen vil blive udført format C: fra kode eller noget lignende. Er der nogen måde at forhindre det på?


P. S. Jeg leder Windows-løsning.

Bedste reference


Du vil bruge flere lag operativsystemfunktioner. Kør kompilatoren og det resulterende program i en firewalled virtuel maskine som en begrænset bruger med begrænset adgang til operativsystemet.


Hvis alt går godt, vil OS'en i VM holde dem fra at gøre noget som formaterer drevet. Men hvis ikke, og de får administratoradgang til det, er det faktum, at det er en engangs VM med grænser placeret udefra, at admin-adgangen ikke er værd at meget. Du kan simpelthen genoprette VM og begynde at friske igen. Faktisk vil du måske se det selv, når alt er normalt som en sikkerhedsforanstaltning.)


Med de to lag af beskyttelse, skal du være ret sikker.


Nu, i VM'en, vil jeg nok bare køre Linux alligevel. Selvom serveren er en Windows-boks, kan du installere en minimal Linux Distro og bruge setrlimit inde i VM'en og dermed klamme ned på proceshukommelsen og cpu-tid. Men hvis du også vil have Windows, skal jobobjekter https://msdn.microsoft.com/en-us/library/ms684161(VS.85).aspx opnå tilsvarende ressourcegrænser. Sørg bare for at din brugerkonto kører kompilatoren og programmet har også stærkt begrænsede tilladelser på drevet også (på begge os). [3]


Selvfølgelig kan du også gøre sådanne ting på værts-operativsystemet uden VM ... men så hvis noget går galt, kan du ikke så nemt grøfte og erstatte det hele, og administratortilgang kan omgå dine andre firewall- eller cpu-begrænsninger . Jeg ville helt sikkert bruge de to lag.


BTW, på trods af vm-laget, skal du ikke glemme, at du stadig bruger korrekt XSRF- og XSS-pleje ligesom alle andre webformularer.