2011-05-02 28 views
1

在此question's答案中,有人可以找到許多網站(例如ideone),允許用戶在線編寫和運行程序。我有興趣做出類似的東西(只適用於Java代碼),並且想知道如何做到這一點。用戶運行給定程序

一個簡單的想法是將用戶的給定代碼發送給服務器,編譯它,運行它,然後將輸出發回給用戶。但是如果用戶有刪除我的服務器文件等惡意代碼呢?如果我想爲C編程語言創建相同的東西,我想我可以獲取C文件的彙編代碼,查看正在使用哪些系統調用並確定給定的代碼是否是惡意的。基於以前的想法,我應該看看Java,該程序創建的字節碼?有沒有更好/更簡單的方法來做到這一點?

回答

1

Security Trail在除了什麼肖恩Patri ck Floyd在他的回答中說,你也可以將操作系統上的進程本身作爲一個額外的措施。在您的主機(執行代碼的機器)上創建一個新用戶,併爲其分配非常少的權限(僅限運行代碼所需的內容)。以該用戶身份運行該進程。

這樣,不管SecurityManager如何,產生的進程將無法損害任何東西。