用disable_functions和disable_classes极大地限制函数和类的代价和好处是什么


What is the cost and the benefit of greatly restricting functions and classes with disable_functions and disable_classes?

我已经进行了一些研究,并开始构建项目网站上记录的PHP 5内置函数的完整列表。

利用disable_functions和/或disable_classes性能成本是多少?

这些全局设置是如何工作的?

请注意,我看到了一个非常有价值的可利用函数列表和RIPS扫描仪。

然而,实际阻止PHP代码中未使用的所有函数和类似乎更完整。

disable_functions从PHP函数列表中删除函数处理程序(指向实际函数实现的指针),并将其替换为显示警告的伪函数的处理程序:

Warning: system() has been disabled for security reasons in Command line code on line 1

这只是PHP的一个处理时间(每次调用它——访问脚本)来完成这个替换。

我对disable_classes不太确定,因为我从未使用过它。

但是,请不要将其视为安全功能-请查看此功能以了解更多信息

PHP中的任何错误(溢出、释放后使用等)都会允许潜在的攻击者篡改进程内存,并修复函数处理程序以指向仍在内存中的正确函数处理程序-这将导致重新启用禁用的函数。

在共享主机环境中始终是分开的。看看我对另一个类似问题的回答。