2010-03-23 16 views
2

在我的Rails應用程序中,我想讓用戶提交自定義「主題」以各種方式顯示數據。如何安全地讓用戶提交Rails應用程序的自定義主題/插件

我認爲他們可以使用API​​調用得到視圖中的數據,我可以創建此認證機制。也是一個經過驗證的API來保存數據。所以這可能是安全的。

但我用最好的方式努力讓用戶上傳/提交自己的代碼爲主題。

我希望這工作有點像Wordpress主題/插件,人們可以上傳的東西。但是有一些安全風險。例如,如果我將上傳的「主題」提交給用戶,並將其放入Rails應用程序內部的某個目錄中,那麼這有什麼風險?

如果用戶在他們的主題插入任何防護欄可執行代碼,儘管這是他們必須在這一點上所有的模型,每個人的數據,等等。甚至從其他用戶完全訪問視圖。所以這不好。

我需要一些方法來讓Rails應用程序的沙盒存在上傳的主題,但我還沒有看到一個很好的辦法做到這一點。有任何想法嗎?

回答

2

你可以試試液體(http://www.liquidmarkup.org/),該計劃旨在允許用戶創建自己的主題爲Shopify。液體主題不是真正的Ruby代碼,所以你不必擔心用戶試圖訪問他們不應該的東西。

另一種選擇是「污點」的對象,它可以被用來實現安全主題/插件,同時還允許用戶編寫實際的Ruby代碼的Ruby的概念。你可以閱讀更多關於它here.我不能保證它是如何安全的,因爲我從來沒有使用它。

+0

液體看起來棒極了,謝謝! – 2010-03-23 05:20:02

0

我還想着讓用戶提交自己的應用程序西納特拉,然後從軌道內運行它們。它看起來像機架路由這是可能的。我一直無法找到任何關於如何將sinatra應用程序從rails應用程序中進行沙盒化的數據。如果有人有信息,請讓我知道!

相關問題