是否可以将EXTR_SKIP设置为PHP的extract()的默认行为?

时间:2012-01-26 22:39:09

标签: php security extract

我有一个遗留应用程序,它大量使用extract()函数。在不受信任的数据上使用EXTR_SKIP标志(例如extract($array_of_stuff, EXTR_SKIP))时,使用EXTR_SKIP标志是一种很好的安全做法,以避免恶意用户覆盖现有变量。当然,我的遗留应用程序没有这样的东西。

所以我的问题是,有什么方法可以将EXTR_SKIP设置为extract()的默认行为?我仍然会手动指定它,但是如果我可以全局设置,我现在更愿意这样做以提高应用程序的安全性,而我正在努力。

1 个答案:

答案 0 :(得分:2)

我会说答案是否定的。一个简单的包装函数是最好的,所以 grep 等是这个的方法。即使您更改了默认行为,如果您正在运行使用extract并期望正常默认行为的任何第三方库,那么这也是一个坏主意。如果你没有运行第三方库,那么公平,但是没有办法在没有黑客攻击的情况下做到这一点。