【问题标题】:shell_exec is not working on servershell_exec 不在服务器上工作
【发布时间】:2013-08-18 19:22:11
【问题描述】:

我正在使用 shell_exec 获取域的 whois 详细信息。在本地主机上一切正常,但是当我在服务器上上传脚本时,它会产生问题。在服务器上,shell_exec 正在部分工作。

echo "shell_exec('whoami')";

给我一​​个输出。

mac

但是当我使用时

echo "shell_exec('whois example.com')";

我得到一个空白页

我应该考虑使用具有 root 权限的主机帐户吗?如果是,那么如何处理安全问题?

P.S- 我不知道这样的东西是否存在,但我已经在 localhost 上对其进行了测试,它在 MAMP 上运行良好。

提前致谢。

【问题讨论】:

  • 很可能是安全问题。你不能得到任何日志吗?但更好的是,你不能在 php 中使用一些高级函数而不是 shell-exec 来执行 whois!?
  • 在 PHP 中,您无需转义到 shell 即可进行 whois 查询。您的编程语言中有库,或者如果您想深入了解它,只需打开一个 TCP 套接字到相关服务器的端口 43,然后发送您的查询,然后发送 CR+LF,然后读回一段文本。跨度>

标签: php unix shell-exec whois


【解决方案1】:

如果您决定使用 root 权限来托管此脚本,那么您应该(很抱歉)被锁在一个填充单元格中。这只是疯狂!运行简单的whois 命令不需要root 权限。这太疯狂了!
以 root 身份托管与托儿所一样安全,由天主教神父、连环杀手和瘾君子经营,他们在三天内没有得到修复。事情将要发生...您只能推测何时以及会有多糟糕结束。

使用whoami 检查运行脚本的用户,然后检查PATH 的样子,将其与whois 的实际位置进行比较(如果存在)。如果未安装,请让您的管理员进行设置,并授予您使用它的权利。如果已安装,请尝试shel_exec('/path/to/bin/whois example.com');
阅读用户权限和环境变量,(以及如何从 PHP 脚本加载/操作它们)

【讨论】:

  • 关于连环杀手的爆料有点强,不是吗? :)
  • @TonyHopkinson:如果有人甚至暗示了一个坏主意,我认为最好在有人看到它并认为它之前杀死它、烧掉它并埋葬它“嗯,实际上...... ". PHP 并没有享有最好的声誉,部分原因是人们用它做的事情是任何理智的人都不会做的。是的,我承认我是个小戏剧女王,但我认为/希望我提出了关于以 root 身份托管的观点
  • 您好 Elias,服务器上没有安装 whois 命令。刚刚安装好了。现在一切正常。
  • @AmirNasir:嗯,这个答案解决了你的问题,不是吗?如果确实如此,那么表示感谢的方式是接受和/或赞成答案......
  • 当然是 Elias,但不幸的是,投票需要 15 声望。再次感谢:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多