【问题标题】:executing a command line in codeigniter - PHP在 codeigniter 中执行命令行 - PHP
【发布时间】:2023-03-24 18:54:01
【问题描述】:

我有一个Codeigniter 框架,我正在它之上构建一个测试框架。 测试框架的一个特点是远程部署测试套件。因此,我正在尝试部署我从网页上编写的Python 测试套件:

public function deploy_test()
{
    if( !$this->input->is_cli_request() ) {
       echo json_encode(system("python test_suit.py"));
    }
}

来自我的控制器,因此,当部署测试时,我想运行它。为了概念证明,我这样做了。但是,该作业永远不会被部署,命令行也不会被执行。 当我从终端运行那段代码时,它按预期工作。我在这里想念什么? 谢谢

** 当我执行ls -l 时,它很奇怪地提到它有效......

【问题讨论】:

  • 网络用户(wwwapache 等)是否有权运行该文件(以及执行脚本需要执行的操作)?另外,你确定路径是正确的吗?
  • 权限为755。绝对路径是正确的......我正在使用完整路径执行
  • @jeroen 它不想以某种方式执行 python ...即使python --version 也不起作用。

标签: php codeigniter shell


【解决方案1】:

基本上,这是一个坏主意——如果主机拒绝访问服务器上执行的东西(毕竟,它怎么知道你的代码不是恶意的),你真的不应该尝试解决这个问题,至少无需与您的提供商交谈并询问他们是否可以让您这样做!

毕竟,执行 LS 并不是真正的恶意,但您可以尝试执行一个 Python 脚本,将“rm -rf”作为服务器。

现在,您也许可以找到解决办法,但在我看来,问题是您应该这样做吗?他们可能会将此解释为黑客攻击。

【讨论】:

  • Russ 的一切都是我写的……服务器是本地服务器,是我的……你有更好的方法吗?
  • 啊,好吧-我的观点仍然成立,尽管上下文发生了变化:)您是否从执行时检查了日志文件? (假设 linux)cyberciti.biz/faq/…
猜你喜欢
  • 1970-01-01
  • 2013-05-25
  • 1970-01-01
  • 2020-07-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多