我计划允许某些(注册和审核)用户发布php代码和/或上传我将在沙盒环境中执行的php文件。
我知道这听起来有多糟糕,我可以打开安全漏洞。
我也会做一些事情,例如设置严格,短的执行时间,每天最多运行一个脚本,以非特权运行webserver用户等等。
我知道我可以禁止在php.ini中使用某些函数,但我想知道是否可以禁用所有函数(不将每一个函数放在php.ini中)但允许使用某些函数我已经审查并认为允许安全吗?
答案 0 :(得分:2)
您最好的选择是使用Suhosin扩展名,这样您就可以使用白名单功能。
请参阅Suhosin的suhosin.executor.func.whitelist配置选项。
<强> suhosin.executor.func.whitelist 强>
允许调用的函数的逗号分隔白名单。 如果白名单为空,则评估黑名单,否则 调用不在白名单中的函数将终止脚本和 得到记录。