簡體   English   中英

如何限制過程能力?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM