[英]How to restrict process abilities?
我正在為ACM解決方案(如TopCoder,Timus等)編寫一種通用競賽系統。 當用戶使用Web服務發送其解決方案時,我需要運行/編譯它。 我想對其設置限制以使其安全運行(無法訪問外部文件,無法獲取系統時間,無法更改工作目錄等)有兩種用戶解決方案:
可以編譯的解決方案(又名c / c ++ / pascal),還有jit-ed和字節碼解決方案(c#,java)
解釋的解決方案(lisp / ruby / python / php)
競賽系統是用.NET 3.5的C#語言編寫的。 競賽者可以在Mono上的Linux和.NET上的Windows中運行。
最好的方法是什么? 如果有能力限制編譯的解決方案(使用PermissionAttributes),但我不知道如何限制解釋的解決方案。
最簡單(看到您可能需要完全信任)是在一個非常有限的用戶帳戶下運行。 IIRC來賓帳戶不能用於此目的。
編輯:
干凈的VM可能是理想的選擇。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.