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