如何仅允许执行指定的功能并禁用所有其他功能?

时间:2012-11-02 13:50:20

标签: php

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

我知道这听起来有多糟糕,我可以打开安全漏洞。

我也会做一些事情,例如设置严格,短的执行时间,每天最多运行一个脚本,以非特权运行webserver用户等等。

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

1 个答案:

答案 0 :(得分:2)

您最好的选择是使用Suhosin扩展名,这样您就可以使用白名单功能。

请参阅Suhosin的suhosin.executor.func.whitelist配置选项。

  

<强> suhosin.executor.func.whitelist

     

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