我有一个Ruby on Rails应用程序,它的一个功能是以表格形式向用户呈现JSON数据。在此步骤之前,我打算为用户添加一种方法,通过上传自己的Ruby代码文件来调整JSON数据。
这有其危险性。我绝对不希望对数据库进行任何形式的访问(读取或写入),也不希望它能够在另一个文件中调用任何内容。如何以这种方式限制文件?
基本上我只需要主代码以JSON作为参数调用用户提交的文件中的函数,然后返回JSON。在此JSON操作期间的所有逻辑必须发生在用户文件中,并且仅在用户文件中发生。
我一直在寻找方法,没有运气。我见过这个问题:
Restricting access to user submitted code in Rails
这里的问题是我更喜欢一种不需要宝石的方法。对于我想要的方法,沙盒似乎相当复杂,这是一个全面限制,而不是具体的事情。
我打算在调用用户提供的代码/方法之前将$ SAFE级别提高到4。这似乎并不妨碍在应用程序中调用其他方法。