2

私の Rails アプリでは、ユーザーがカスタムの「テーマ」を送信して、さまざまな方法でデータを表示できるようにしたいと考えています。

API 呼び出しを使用してビュー内のデータを取得できると思います。そのための認証メカニズムを作成できます。また、データを保存するための認証済み API。だから、これはおそらく安全です。

しかし、ユーザーがテーマの独自のコードをアップロード/送信できるようにする最善の方法に苦労しています。

これは、人々がアップロードできるWordpressのテーマ/プラグインのように機能することを望んでいます. しかし、いくつかのセキュリティリスクがあります。たとえば、ユーザーが送信したアップロードされた「テーマ」を取得して、Rails アプリ内のどこかにある独自のディレクトリに配置した場合、これにはどのようなリスクがありますか?

ユーザーが自分のテーマにレール実行可能コードを挿入すると、その時点ですべてのモデル、全員のデータなどに完全にアクセスできるビューであっても、他のユーザーからでも。だから、それは良くありません。

アップロードされたテーマを Rails アプリのサンドボックスに存在させる方法が必要ですが、これを行う良い方法は見当たりません。何か案は?

4

3 に答える 3

2

ユーザーが Shopify 用に独自のテーマを作成できるように開発されたLiquid ( http://www.liquidmarkup.org/ ) を試すことができます。Liquid テーマは実際の Ruby コードではないため、ユーザーがアクセスしてはいけないものにアクセスしようとすることを心配する必要はありません。

もう 1 つのオプションは、Ruby の「汚染された」オブジェクトの概念です。これは、ユーザーが実際の Ruby コードを記述できるようにしながら、安全なテーマ/プラグインを実装するために使用できます。詳細については、こちらをご覧ください。使ったことがないので安全性は保証できません。

于 2010-03-23T04:22:03.213 に答える
0

また、ユーザーが独自のsinatraアプリを送信して、レール内から実行できるようにすることも考えています. ラック ルーティングを使用すると、これが可能になるようです。ただし、sinatra アプリが rails アプリからサンドボックス化されているかどうかについてのデータを見つけることができませんでした。情報知ってる人いたら教えてください!

于 2010-03-25T06:00:04.140 に答える
0

これには可能性があるようです: http://flouri.sh/2007/10/27/safely-exposed-your-app-to-a-ruby-sandbox

于 2010-03-23T04:20:03.913 に答える