首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >限制用户使用PHP执行shell命令

限制用户使用PHP执行shell命令
EN

Security用户
提问于 2016-02-01 06:02:20
回答 2查看 2.7K关注 0票数 6

假设我共享了主机,我想保护这个位置,不执行shell命令。我安装了suphp,以便用户可以单独执行PHP。我还做了一些其他的事情来保护服务器(basedir和php.ini中的其他推荐设置)。

但问题仍然存在:(我可以从其他网站执行和读取配置文件)

代码语言:javascript
复制
<?php echo exec('cat /var/www/website/config.php'); ?>

如果禁用exec功能,还有其他方法可以从服务器中查找敏感信息。

我能做什么?我可以禁用针对特定用户的unix命令,这会生效吗?

编辑:在755之前,我更改了bin 754的预任务,现在用户无法使用PHP运行shell命令。这是一种解决方案吗?

EN

回答 2

Security用户

回答已采纳

发布于 2016-02-01 08:46:40

禁用exec和suexec,启用open_basedir,基本上遵循这个职位中的每个建议。

你提到了still there are other ways to...,如果你读了那篇文章,你还有问题或弱点,请在这里或者在服务器错误中发布

票数 1
EN

Security用户

发布于 2017-09-17 18:40:16

在755之前,我更改了bin 754的预任务,现在用户无法使用PHP运行shell命令。

我觉得这是个有趣的解决方案。但是在这种情况下,安全规则的分离对于特定的用户来说是不方便的。

我想提出几个其他方法:

  1. chroot的形式运行apache。但它需要复杂的配置。它允许为每个虚拟主机(执行用户)创建“隔离”执行空间。在我看来,这里描述了一个很好的例子:Apache + Chroot + FastCGI + PHP
  2. 在Docker容器中运行apache和php。这是一种更为现代的vhost隔离解决方案。但它也需要复杂的配置。
  3. 通过disable_functions指令在php.ini中禁用潜在不安全的函数。这是比较简单和不安全的方式。例如:disable_functions=dl,system,exec,passthru,shell_exec,stream_select,popen,proc_open,proc_nice,ini_set

在这里可以找到潜在的不安全函数:受安全模式限制/禁用的函数

票数 1
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/112359

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档