的SPOJ的是一個網站,列出了編程難題,然後允許用戶編寫代碼來解決這些難題,並上傳自己的源代碼服務器。服務器然後編譯該源代碼(或者解釋它是否是解釋型語言),針對代碼運行一系列單元測試,並驗證它是否正確地解決了該問題。架構到沙箱的編譯和執行不可信的源代碼
什麼來實現這樣的事情最好的辦法 - 你怎麼沙箱用戶輸入,使其不能妥協的服務器?你應該使用SELinux,chroot還是虛擬化?所有三個加上我還沒有想到的其他東西?
如何應用可靠的通信,同時也確保了結果不受損害監獄外的結果嗎?例如,如何防止應用程序將大量無意義的數據寫入磁盤或其他惡意活動?
我真正好奇,因爲這似乎只是一個非常危險的類型的應用程序來運行的。
「並因此降低您的成本。」 - 考慮到降低成本,爲什麼不使用[Ideone API(http://ideone.com/api)?它已經準備好並免費供小型非商業項目使用。 – kuszi 2011-04-08 08:45:18
@ŁukaszKuszner,我指的是商業部署的持續成本。一旦您的成本按每小時美元計算,開發成本變得微不足道;) – saschabeaumont 2011-04-11 00:31:16