2

ruby コードを入力として受け取り、それを実行する Rails アプリケーションに取り組んでいます。送信されたコードは信頼されていないドメインからのものであるため、特定のメソッドとモジュールへのアクセスを制限したいと考えています。たとえば、ユーザーにFile.readorへのアクセスを許可したくありませんopen()

また、一部のモジュールのみにアクセスを制限することはできますか? ユーザーが送信したコードから要求できるのは、ホワイトリストのモジュールのみです。

おそらくユーザーコードの検証を行うことができますが、ルビー言語またはモジュールに既にこの機能があるかどうかを確認したかったのです。

Codeschool.com にはインタラクティブなチュートリアルがあります。ユーザーコードへのアクセスを制限したり、検証をまったく行ったりするのか疑問に思っています。

4

2 に答える 2

3

Rubyにはそのための機能が組み込まれています。$SAFE

ここで見つけることができるいくつかの基本的なイントロhttp://edwinmeyer.com/Release_Integrated_RHG_09_10_2008/chapter07.html そして、簡単にもっとグーグルすることができます(私は本だけをお勧めします)

こちらも ご覧ください http://www.ruby-doc.org/docs/ProgrammingRuby/html/taint.html

私が覚えている解決策は、アプリをロード$SAFEし、スレッドでレベルを 4 に上げて、そこでコードを実行することです (これは後で下げることができないため、最初に Rails がレベル 0 でロードできるようにする必要があります)。

于 2013-07-28T09:53:00.813 に答える
2

私はいつもこの種のタスクに満足してシカシを使用してきました.

于 2013-07-28T09:51:01.017 に答える