我是 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