【问题标题】:Run a binary CGI file on the command line with GET params使用 GET 参数在命令行上运行二进制 CGI 文件
【发布时间】:2020-10-28 22:16:00
【问题描述】:

如何在命令行上运行二进制 cgi 文件并为其提供 GET 参数?

我知道这个任务对于 perl 或 php 文件来说可能很简单,但我有一个二进制 cgi 文件并且没有它的文档。我想在没有网络服务器的情况下运行它,这样我就可以评估一些同事机器上的某些问题。

我尝试了以下方法,但无济于事:

QUERY_STRING="foo=bar" ./myfile.cgi
foo=bar ./myfile.cgi
./myfile.cgi foo=bar
./myfile.cgi <<< "foo=bar"

在每种情况下,脚本都会输出Error in form found&lt;br&gt;Missing foo&lt;br&gt;&lt;b&gt;&lt;/b&gt;&lt;br&gt;。 (通过我们服务器上的 apache 执行时,它不返回错误消息,只返回预期的结果。)

【问题讨论】:

    标签: cgi


    【解决方案1】:

    QUERY_STRING=... 之外指定环境变量REQUEST_METHOD=GET 会有所不同。

    strings myfile.cgi输出的token中,有很多cgi相关的变量是web服务器可能需要设置的,比如REMOTE_ADDRSERVER_SOFTWARESERVER_PROTOCOL,但是前面提到的两个变量证明足以让这个可执行文件产生一个无错误的输出。

    (对于 POST,我已经读到 body/params 是从标准输入读取的,但我没有亲自证实这一点。)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-01-05
      • 1970-01-01
      • 2016-06-08
      • 1970-01-01
      • 2013-08-26
      相关资源
      最近更新 更多