检查数据是否是clojure代码并运行它

时间:2018-03-25 21:58:53

标签: parsing clojure sandbox

我想从不受信任的来源解析并运行(clojure)代码 在clojure中,如果可能的话,在clojurescript中。

例:
用户在webbrowser中输入代码 - > cljs检测代码是否有效并提供反馈。

代码转到服务器 - >启动沙箱运行代码或进行代码分析

最好的方法是什么。
其他网站(运行不受信任的代码)如何做到这一点以及我应该使用哪些库。

我找到clojail,但最后一次提交是5岁 如果我正确的话,tools.reader会解析。

欢迎任何帮助:)

1 个答案:

答案 0 :(得分:1)

听起来您需要readread-string。这将读取流或字符串作为Clojure数据。

假设您了解并了解风险,则可以使用eval将其评估为代码。这基本上是repl正在做的事情。

请注意,您引用的clojail库为eval提供了更安全的替代,您可以在其中限制某些操作。它由https://www.4clojure.com/

使用