【发布时间】:2011-03-18 19:17:06
【问题描述】:
如果攻击者可以控制attacker_controlled_nasty_variable的值,那么这段代码是否存在漏洞?
dic={"one":1,
"nasty":attacker_controlled_nasty_variable,
}
store=str(dict)
...
dic=eval(store)
【问题讨论】:
-
既然攻击者可以编辑你的 Python 源代码,这个问题就很傻了,不是吗?
-
谁说攻击者在他的本地机器上运行代码?
-
@Tim Pietzcker:如果不在本地机器上运行,攻击者是如何设置讨厌的变量的?
-
@S.Lott SQL 注入、配置文件、网页上的表单 - 很多方法...
-
@S.Lott 然而很多人确实写出了非常糟糕的代码。根据应用程序,您可能希望允许用户拥有他们自己的配置文件,他们可以上传这些配置文件并针对他们的帐户运行,但是如果您不清理您的输入,则会出现漏洞。最重要的是,并非所有项目都由一个人(少数人)整体开发,因此您的代码尽可能好,并且可以弥补您大学的一些不足之处。