2

ユーザーが小さなカスタムアプリ(Wordpressのテーマやプラグインを考えてください)を作成し、自分のサイトにアップロード/実行できるようにしたいと思います。

これにはSinatraアプリを使用することを考えています。これは、ユーザーに多くの柔軟性を提供し、Railsアプリ内でミドルウェアとして実行するためです。

しかし、これがセキュリティに与える影響を理解することはできません。ミドルウェアとして単純なsinatraアプリを作成してみましたが、すべてのRailsモデルとすべてにアクセスできるので、それは悪いことです。sinatraアプリが効果的にサンドボックス化され、悪いことを実行できないように、ラックでこれらを分離する方法はありますか(APIまたは通信用に設定した特定の方法以外)?

私も考えもしなかった、これを達成するためのより簡単な方法があるかもしれないので、アイデアを歓迎します。ありがとう!

4

2 に答える 2

1

ユーザーをどの程度知っている/信頼していますか?答えに「非常に」や「親密に」などの言葉が含まれているといいのですが。彼らが混乱した場合、あなたはどれほど簡単に鋭くて痛みを伴う何かで彼らに到達することができますか?

そのようなもののアップロードとインストールを可能にする簡単な方法(ええと、私は複雑な方法を考えることはできません)を考えることはできません。Wordpressを使用しても、WPがホストするサイトにランダムなプラグインをインストール/実行することはできないと思います。意味のあるコードでさえ問題を引き起こすリスクは、私の常軌を逸した心には計り知れません。

シナトラは確かに柔軟性を与えますが、あなたがすでに特定したように、それは良いことではないかもしれません。

もちろん、ユーザーがRuby / Sinatraに精通している(または受け入れられるようになることができる)場合は、アプリのリポジトリ(git、svnなど)を提供して、アドホックまたはオンのいずれかでラック内の適切な場所にデプロイできます。いくつかのスケジュール。

ひづめのことを考えて、実現可能性の概念なしで、安全に利用できる機能が比較的限られている場合は、それらが利用できるように、ある種の制約付きDSLを作成することを検討してください。このように作成されたスクリプトが十分に短く/効率的である場合、おそらくそれらはアプリのデータベース内に保存され、eval

于 2010-03-25T13:34:14.693 に答える
1

たぶん、TryRuby / The Freaky Sandboxまたは他のRubyサンドボックスの1つを見ると、どこかに行くことができます。

于 2010-03-25T19:00:23.967 に答える