2012-01-09 64 views
1

假設我想提供用戶將代碼放入textarea併爲教育目的執行它的可能性。用戶執行網站安全ruby腳本

例如用戶填寫輸入與print "hello"

他提交形式 - >代碼由服務器處理 - >用戶看到導致

,但我想避免這樣的事情:

  • 操縱文件系統
  • dos攻擊像叉子
  • 在網上做請求
  • ...

所以這個紅寶石解釋器應該只限於一些基本功能。

是否有可能?

+0

正如鏈接的問題/答案中所述,在Ruby中執行此操作的方法是通過僅創建一個僅具有安全方法的對象並在該對象的上下文中運行用戶命令。 – coreyward 2012-01-09 23:48:47

+0

是的,你是對的,這將是一個dup,謝謝。關閉問題 – dfens 2012-01-10 09:17:55

+0

哦,不完全 - 你可以打電話給fe:sleep(10) – dfens 2012-01-10 09:22:47

回答

-1

我不知道解釋器的限制,但我認爲在提交它之前你需要解析輸入,如果你有類似system("rm -rf ~")的東西,請不要將它發送給解釋器並重新發送警告。

0

我想你可以使用JRuby(http://jruby.org/)實現。您可以使用JVM安全策略功能創建沙箱。在這種情況下,您不必擔心用戶輸入 - JRuby正在執行的腳本將受到安全設置的限制。