我是Clojure的新手,试图了解一些语言的安全特性。
在文档中,我了解到将read-eval绑定到unkown应该会拒绝执行代码。
但在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