PHP指定对内置函数的访问权限

PHP指定对内置函数的访问权限,php,Php,有没有办法锁定对一些内置php函数的访问,例如rmdir(),并允许其他函数/方法/对象访问它? 检查“禁用函数”属性: 禁用功能 此指令允许您禁用某些 出于安全原因的功能。它采用逗号分隔的列表 函数名。禁用功能不受安全模式的影响 使用此指令只能禁用内部功能。 用户定义的函数不受影响 此指令必须在php.ini中设置。例如,您不能设置此指令 在httpd.conf中 检查“禁用函数”属性: 禁用功能 此指令允许您禁用某些 出于安全原因的功能。它采用逗号分隔的列表 函数名。禁用功能不受安全模式的

有没有办法锁定对一些内置php函数的访问,例如
rmdir()
,并允许其他函数/方法/对象访问它?

检查“禁用函数”属性:

禁用功能

此指令允许您禁用某些 出于安全原因的功能。它采用逗号分隔的列表 函数名。禁用功能不受安全模式的影响

使用此指令只能禁用内部功能。 用户定义的函数不受影响

此指令必须在php.ini中设置。例如,您不能设置此指令 在httpd.conf中

检查“禁用函数”属性:

禁用功能

此指令允许您禁用某些 出于安全原因的功能。它采用逗号分隔的列表 函数名。禁用功能不受安全模式的影响

使用此指令只能禁用内部功能。 用户定义的函数不受影响

此指令必须在php.ini中设置。例如,您不能设置此指令 在httpd.conf中


在php.ini中查找disable_函数。

在php.ini中查找disable_函数。

有一个
disable_函数。但一旦通过此路径禁用功能,则无法再次启用


除此之外,您不能限制对PHP中任何内置函数的访问

还有一个
禁用函数
。但一旦通过此路径禁用功能,则无法再次启用


除此之外,您不能限制对PHP中任何内置函数的访问,您可以使用重写函数,但还必须在PHP.ini中设置
runkit.internal\u override
,否则您只能重写用户空间中的函数

一旦您重写了
rmdir()
,您就可以让它做任何您想做的事情:什么都不做,只在某些目录下工作,只在设置了会话变量时工作,等等

我以前没试过,但你也可以使用和。您可以将
rmdir()
重命名为
rmdir\u hidden()
,并在特定条件下重写内置名称以调用新名称。仍然可以调用
rmdir\u hidden()
,但前提是编码器知道它被重命名为什么


顺便说一下,我认为在PHP中重新定义内置函数不是一个好主意。也许在你实施这个之前,你应该好好看看你在做什么,为什么要这么做。在我参与的所有PHP项目中,我从未见过或考虑过重写内置函数。

您可以使用重写函数,但还必须在PHP.ini中设置
runkit.internal\u override
,否则只能重写用户空间中的函数

一旦您重写了
rmdir()
,您就可以让它做任何您想做的事情:什么都不做,只在某些目录下工作,只在设置了会话变量时工作,等等

我以前没试过,但你也可以使用和。您可以将
rmdir()
重命名为
rmdir\u hidden()
,并在特定条件下重写内置名称以调用新名称。仍然可以调用
rmdir\u hidden()
,但前提是编码器知道它被重命名为什么


顺便说一下,我认为在PHP中重新定义内置函数不是一个好主意。也许在你实施这个之前,你应该好好看看你在做什么,为什么要这么做。在我所从事的所有PHP项目中,我从未见过或考虑过重写内置函数。

禁用函数是全局性的,因此我建议仅在万不得已的情况下使用它

对于rmdir()和其他文件系统函数,您可以确保运行PHP的用户(可能是apache)没有权限修改您不希望它修改的文件和文件夹


作为更普遍的考虑。如果您允许您不信任的人执行代码,您可能需要重新考虑您的设计

禁用功能是全局性的,因此我建议仅作为最后手段使用它

对于rmdir()和其他文件系统函数,您可以确保运行PHP的用户(可能是apache)没有权限修改您不希望它修改的文件和文件夹


作为更普遍的考虑。如果您允许您不信任的人执行代码,您可能需要重新考虑您的设计

我很想知道你为什么要这么做。