我已经进行了一些研究,并开始构建完整的PHP 5内置函数列表,如项目网站所示。
利用disable_functions
和/或disable_classes
的效果费用是多少?
这些全局设置如何运作?
请注意,我遇到了非常有价值的list of exploitable functions和the RIPS scanner。
但是,实际阻止PHP代码中未使用的所有函数和类似乎更完整。
答案 0 :(得分:1)
disable_functions
从PHP函数列表中删除函数处理程序(指向实际函数实现的指针),并将其替换为处理函数,而不是显示警告的虚函数:
Warning: system() has been disabled for security reasons in Command line code on line 1
这只是PHP的处理时间(每次调用它时 - 访问一个脚本)来替换它。
我对disable_classes
不太确定,因为我从未使用过它。
但是,请不要将此视为安全功能 - check this以获取更多信息。
PHP中的任何错误(溢出,释放后使用和类似错误)都会允许潜在的攻击者篡改进程内存并修复函数处理程序以指向仍在内存中的正确函数处理程序 - 这导致重新启用已禁用的功能。
始终在共享托管环境中分开。请参阅my answer其他类似问题。