我們正在研究與Tropo有類似要求的產品(請參閱https://github.com/tropo/tropo-samples/tree/master/ruby),其中允許用戶編寫一個ruby腳本,該腳本可以訪問傳入的一些函數和變量。但是,我們希望避免用戶訪問全局呼叫,刪除所有用戶或終止程序。有沒有辦法用eval來實現這一點?有沒有一種安全的方式在Ruby中運行eval?
7
A
回答
2
這將取決於你如何實現它,但看看使用綁定與eval。通過創建自己的綁定並將其預加載「安全」對象,可以限制用戶可以使用他的代碼執行的操作。
0
set $ SAFE parameter?這應該確保你不會評估不可信任的字符串,無論如何...
0
Ruby提供了基於「感染」對象的安全模型。
您可能想要購買check that。無論如何請注意,創建一個DSL比eval更安全(也更有趣!)
相關問題
- 1. 有沒有一種安全的方式在.NET 4.0之前在C#中執行指針運算?
- 2. 有沒有一種方法來操縱包含JS沒有eval()?
- 3. 有沒有一種方法在Objective-C中具有類型安全的常量?
- 4. 有沒有另一種方法來創建一個更安全的形式Django
- 5. 有沒有一種優雅的方式在Ruby中做到這一點?
- 6. 有沒有一種方法來縮小CSS沒有它全部在一行?
- 7. 有沒有一種安全的方式來迭代std :: unique_ptr <int[]>?
- 8. 有沒有一種安全的方式來發送變量從PHP到閃存
- 9. php __autoload()和動態/運行時類定義 - 有沒有一種方法沒有eval?
- 10. 有沒有一種標準的方式讓Perl在內存不足時運行?
- 11. 有沒有一種方法可以完全格式化C#double?
- 12. 有沒有一種安全的編程方式來確定打開Swing窗口是否安全?
- 13. 有沒有一種安全的方式來執行C++中的用戶/客戶端代碼?
- 14. 我可以在沒有eval的全局執行上下文中運行javascript
- 15. 有沒有一種方法可以避免在這個JavaScript塊中使用eval?
- 16. 在運行時C++中有沒有一種有效的方法來檢索函數的全部簽名?
- 17. 執行沒有eval的jquery方法
- 18. 有沒有一種通用的方式來進行此轉換?
- 19. 有沒有一種方法可以運行多個IntentService?
- 20. 有沒有一種統一的方式來獲取內容在Ruby中的文件://或http:// URI方案?
- 21. 有沒有一種安全的方式來修改表pg_constraint,以便不再進行檢查(臨時)?
- 22. 有沒有一種方便的方式在knitr中製作熱圖式桌子?
- 23. 有沒有一種通用的方式來完全重置一個angularjs表單?
- 24. 有沒有一種安全的方法來建立SQL日期時間?
- 25. 有沒有一種安全的方法來設置mysql root密碼?
- 26. 有沒有一種安全的方法來刪除JointJS文件/圖
- 27. 有沒有一種安全的方法來手動動畫滾動UIScrollView?
- 28. 有沒有一種用JavaScript驗證JSON輸入的安全方法?
- 29. 有沒有一種「簡潔」的方式來在JavaScript中進行命名空間?
- 30. 有沒有一種很好的方式在JavaScript中進行顏色循環?
你應該覆蓋eval並僅傳遞可信命令 – apneadiving
可能的重複:http://stackoverflow.com/questions/406833/language-in-a -sandbox式護欄 – fyr