我正在开发一个Web应用程序,用户可以在其中提供服务器然后将变量替换为的字符串.
我最好使用PEP 3101 format()语法,我正在研究在Formatter中覆盖方法的可行性,以使其对不受信任的输入安全.
以下是我可以看到的.format()风险:
我的假设是:
你的想法是什么?可能?不可能?真的不明智?
编辑:如果你没有过滤掉dunder变量访问,Armin Ronacher概述了一个令人讨厌的信息泄漏,但似乎认为安全格式()是可行的:
{local_foo.__init__.__globals__[secret_global]}
http://lucumr.pocoo.org/2016/12/29/careful-with-str-format/
(就个人而言,我实际上并没有在我的产品中使用不受信任的format()路由,但为了完整性而更新)