Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何仅允许执行指定的函数并禁用所有其他函数?_Php - Fatal编程技术网

Php 如何仅允许执行指定的函数并禁用所有其他函数?

Php 如何仅允许执行指定的函数并禁用所有其他函数?,php,Php,我计划允许某些(已注册和审查的)用户发布php代码和/或上传我将在沙箱环境中执行的php文件 我知道这听起来是个多么糟糕的主意,我可能会打开安全漏洞 我还将做一些事情,比如设置严格、短的执行时间、每天最多运行一个脚本、将Web服务器用户作为非特权用户运行等等 我知道我可以禁止在php.ini中使用某些函数,但我想知道是否可以禁用所有函数(而不是将每个函数都放在php.ini中)但是允许使用我已经检查过并且认为可以安全使用的某些功能吗?您最好使用扩展,它允许您将希望允许的功能列入白名单 请参阅Su

我计划允许某些(已注册和审查的)用户发布php代码和/或上传我将在沙箱环境中执行的php文件

我知道这听起来是个多么糟糕的主意,我可能会打开安全漏洞

我还将做一些事情,比如设置严格、短的执行时间、每天最多运行一个脚本、将Web服务器用户作为非特权用户运行等等

我知道我可以禁止在php.ini中使用某些函数,但我想知道是否可以禁用所有函数(而不是将每个函数都放在php.ini中)但是允许使用我已经检查过并且认为可以安全使用的某些功能吗?

您最好使用扩展,它允许您将希望允许的功能列入白名单

请参阅Suhosin的配置选项

suhosin.executor.func.whitelist

允许调用的函数的逗号分隔白名单。 如果白名单为空,则评估黑名单,否则为空 调用不在白名单中的函数将终止脚本并 记录下来


在禁用列表之前,您可以获取\定义的\函数()并删除希望它们使用的函数。