php - 使用 PHP exec() 处理服务器上与系统相关的任务是否安全?

标签 php ftp exec quota

我正在用 PHP 和 Javascript 开发一个应用程序,我需要为给定用户设置磁盘配额(因​​为我使用 FTP 守护进程(在本例中为 ProFTPd)以允许用户拥有自己的文档管理器)这样 elFinder(我目前正在考虑使用的文档管理器)可以“自由”运行(而不必创建我自己的 PHP 函数来控制实际使用的空间量)。

这个想法是运行单个命令来调整服务器端的磁盘配额,但是......让 PHP 运行系统命令是否安全(即使我不打算接受参数或允许任何类型的命令)用户与系统的交互)?

最佳答案

通常不安全。如果您允许用户发送命令或任何其他类型的交互,这并不重要。即使您的脚本单独运行,也可以发明漏洞以一种或另一种形式利用它,并可能改变它的操作。

但是,这只适用于您希望在服务器上拥有疯狂的安全规则的情况。在现实世界中,损害服务器安全的可能性很小。

我还有一些建议给你:

  1. 确保您的脚本不接受任何来自外部的输入,它不读取数据库或文件。所有内容都必须包含在脚本内。

  2. 尝试将脚本放在 documentRoot 之外的某个位置,这样用户就无法访问它。

  3. 对脚本设置一些特殊权限,以便其操作仅限于其运行的用户。即使有人以某种方式破坏了它,操作系统也不会让他做其他事情,除了在特定环境中运行该特定命令。

这当然可以用更多规则来完成,但这只是现在想到的。希望对您有帮助

关于php - 使用 PHP exec() 处理服务器上与系统相关的任务是否安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7609682/

相关文章:

php - 服务器端验证防止数据库错误

java - 使用 FTP 部署 Maven 多模块项目的站点时出错

php - php处理ffmpeg和进度条有什么好的功能

Python 执行 grep

linux - 无法让 linux 'exec' 命令正常工作

php - 大奖网站空白

php - 使用本地 Redis 服务器在低流量站点的生产环境中缓存数据库查询是否安全?

git - "git ftp init"没有发送所有文件

java - FTPClient 无法从带空格的目录名中获取文件列表

php - 绕过 MySQL 查询