我想将文件(php站点/应用程序)上传到给定目录并在我的Web服务器中运行它们。但是,已经有一个简单的shell_exec调用会导致严重的后果。
我能想到的所有事情都是将页面目录设置在public_html之外并自动设置权限,以便运行该页面的用户在其之外没有任何权限。
到目前为止,我发现的其他平庸解决方案是runkit_sandbox,这看起来非常不安全,特别是因为它似乎被放弃了。
真的没办法吗?甚至没有完全shell访问(shell脚本)?
答案 0 :(得分:2)
没有。用户上传的代码可以参与几乎无限数量的恶意行为,其中许多与合法行为非常相似(例如,发送邮件与发送垃圾邮件;访问外部API而不是执行DDoS;运行命令行实用程序与运行漏洞利用;管理文件与删除所有内容)。通常没有“罐头”方式来做到这一点,而且在PHP中肯定没有。
答案 1 :(得分:1)
答案 2 :(得分:0)
使用open_basedir将用户限制在某个文件夹中。通过这种方式,它可以用他的所有权执行他的文件,但是它将无法看到比他的文件夹更多的内容。
在这里查看更多信息:
http://www.randombugs.com/php/apache-dynamic-virtual-hosting-php-security.html