我正在解析不可信的数据。为了提高错误报告,我想跟踪文件位置。
据我所知,clojure.tools.reader.edn/read
是处理不可信数据的正确工具,但它不处理文件位置元数据,而clojure.tools.reader/read
则包含文件位置元数据,但它可能会在不可信数据 behalf 上执行代码,这显然不理想。
如果我将data-readers绑定到一个已知的、安全的读取器映射中,将read-eval设置为false,这还会使我因不可信数据而暴露在不希望的代码执行中,或者它会使clojure.tools.reader/read
在处理我的EDN时更安全吗?