我是Clojure的新手,正在尝试理解该语言的一些安全问题。
在文档中,我了解到将read-eval绑定到未知应该拒绝执行代码。
但在我用clojure.core/read-string进行代码实验时,它通过使用clojure.tools.reader/read-string正常工作。
我还看到reader.edn不会执行代码,但我想确保即使我们的开发人员误用了clojure.tools.reader,也不会执行任何代码。
先行感谢,Rotem
POC
(binding [*read-eval* :unknown]
(clojure.tools.reader/read-string "#=(* 2 21)"))
=> 42