2
我有一个传统的应用程序,它会大量使用extract()函数。在不可信数据上使用EXTR_SKIP标志(例如extract($array_of_stuff, EXTR_SKIP)
)是非常安全的做法,以避免恶意用户覆盖现有变量。当然,我的传统应用程序没有这样的事情。是否可以将EXTR_SKIP设置为PHP的extract()的默认行为?
所以我的问题是,有没有什么办法可以将EXTR_SKIP设置为extract()的默认行为?我仍然在经历并手动指定它,但是如果我可以在全局范围内设置,我现在更愿意这样做,以便在我酝酿时提高应用程序的安全性。
你使用PHP> = 5.3.0吗? – DaveRandom 2012-01-26 22:47:17
据我所知(除非使用runkit,这对生产来说不是个好主意)。你不能只是定义一个新的函数,并使用'find -iname'* .php'-exec sed --in-place = backup.php s/\ bextract \(/ newfunc \(/ g {} \;' ? – Wrikken 2012-01-26 22:51:52
@DaveRandom:PHP> = 5.3,你的意思是使用命名空间?棘手,因为提取到达当前范围,而不是全局范围..所以除非一切都是全局的,否则它不起作用 – Wrikken 2012-01-26 23:00:22