PHP指定对内置函数的访问权限
有没有办法锁定对一些内置php函数的访问,例如PHP指定对内置函数的访问权限,php,Php,有没有办法锁定对一些内置php函数的访问,例如rmdir(),并允许其他函数/方法/对象访问它? 检查“禁用函数”属性: 禁用功能 此指令允许您禁用某些 出于安全原因的功能。它采用逗号分隔的列表 函数名。禁用功能不受安全模式的影响 使用此指令只能禁用内部功能。 用户定义的函数不受影响 此指令必须在php.ini中设置。例如,您不能设置此指令 在httpd.conf中 检查“禁用函数”属性: 禁用功能 此指令允许您禁用某些 出于安全原因的功能。它采用逗号分隔的列表 函数名。禁用功能不受安全模式的
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)没有权限修改您不希望它修改的文件和文件夹
作为更普遍的考虑。如果您允许您不信任的人执行代码,您可能需要重新考虑您的设计 我很想知道你为什么要这么做。