php - 安全地服务于其他人的 PHP

标签 php linux apache security amazon-ec2

我有一个 Amazon ec2 实例 (linux)。

我希望您(是的,您)能够上传 PHP 文件,然后在 www.mydomain.com/yourname 上实时提供该文件。我还希望能够为许多其他人 (www.mydomain.com/theirname) 执行此操作。

我担心您(或他们,我们不要指责)可能会做出恶意的事情(有意或无意)。例如,无限循环、在根目录外读/写、关闭服务器、运行系统命令等。如果我想恶意,我会尝试这样做。

有没有什么方法可以设置 PHP/apache/用户权限,或者在提供代码之前搜索他们的代码,这样恶意行为至少会困难得多?

最佳答案

除其他事项外,您肯定希望调整 PHP.ini 以包含以下内容:

disable_functions =exec,passthru,shell_exec,system,proc_open,popen,curl_exec,curl_multi_exec,parse_ini_file,show_source

这将阻止在任何使用此 .ini 的 PHP 文件中执行这些函数

我还会启用 open_basedir支持将用户锁定在他们自己的目录中,这样他们就不能使用类似的东西:

require_once '../../another_user/index.php';

$notMyFile = file_get_contents('../../another_user/config.php');

关于php - 安全地服务于其他人的 PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12146959/

相关文章:

c - 使用 Xinerama 的多个显示器可能的分辨率

c - 所有 fork 函数的返回值有什么区别?

apache - 可以按需启动的用于 Windows 的简单 HTTP 服务器应用程序?

php - 为什么mysqli参数绑定(bind)会出错?

php - Laravel 5.4 中的事件监听器

php - MySQL 将值插入到错误的列中

linux - 打补丁后的内核编译

apache - Kubernetes:无法使用apache和https部署Flask Web应用

php - UTF-8贯穿始终

php - 如何循环遍历一堆句子