我正在开发一个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()路由,但为了完整性而更新)
本能很好.是的,攻击者能够提供任意格式的字符串是python下的一个漏洞.
Object父类有任何有用的信息.提供给格式的对象必须包含敏感的内容.在任何情况下,这种表示法都可以用正则表达式来限制.查看python格式字符串规范并禁止用户使用正则表达式来禁用该功能.
| 归档时间: |
|
| 查看次数: |
3381 次 |
| 最近记录: |