2012-06-05 72 views
0

我正在嘗試製作一個網站,讓人們可以在那裏運行上傳的代碼。像SPOJ/ACM。我如何確保代碼不會損壞我的系統(限制訪問套接字,系統調用)Ruby中的安全執行

我在網上看了很多解決方案,有人建議chroot,但我不明白。另外這需要配置,可以這樣做配置等

注意我不是要求任何特定的語言,在可執行文件中運行。

我的開發設置是用於託管的MAC和Linux,如果解決方案可以同時運行,它會很好。不是要求。

回答

0

看一看RubyCop

RubyCop掃描Ruby代碼,並告訴你它是否安全與否。我們在CodeSchool上使用它來檢查用戶提交的代碼,然後我們在服務器上評估它。

+0

這隻針對Ruby代碼。如果你想讓任何可執行文件安全運行會怎樣。 –

0

請檢查紅寶石內置tainted機制

+0

這隻針對Ruby代碼。如果你想讓任何可執行文件安全運行會怎樣。 –

1

我會建議使用虛擬機有一個系統的最低要求,只允許運行,並沒有別的紅寶石。我會使用一個linux系統,在那裏你可以通過擴展權限來更大程度地鎖定程序的執行。

終於在每個程序運行後,然後將虛擬機重置爲檢查點原始設置,以清除可能發生的任何事故。