0

i perl 脚本读取网络流量并将特定长度的数据包的有效负载打印回终端。为此,脚本应由 root 启动,否则将不会读取数据包。

为此,我在 perl 中使用 pcap。

现在我的网络服务器上有一个网页。我可以从我的网页执行该 perl 脚本并将终端上打印的输出获取到我的网页吗?

我正在尝试使用 javascript 来实现此目的,但我不知道它是如何完成的。我试着用谷歌搜索它,我得到的只是ssh user@remote "perl pathto/perlfile.pl"

有人可以帮我解决这个问题吗?

4

1 回答 1

0
  • 要从网页启动命令,请向在您的网络服务器上运行的另一个 CGI 脚本发出AJAX调用。

    AJAX 调用可以返回运行命令的结果(通常以 JSON 或 XML 格式),然后调用一些 JavaScript 处理程序以在页面的 DOM 中呈现该数据。

  • 要在本地 web 服务器的 unix 机器上以 root 身份运行某些东西,您需要从第一个项目符号中提到的 CGI 脚本调用suid脚本(因为 web 服务器及其运行的所有脚本通常以非 root 身份运行以确保安全原因)。

  • 要在另一台机器上以 root 身份运行某些东西,您已经正确地发现您需要使用 ssh(来自同一个 CGI 脚本):ssh root@your_remotehost "perl pathto/perlfile.pl"

    您需要在 2 个系统之间正确设置 ssh 密钥,这样 ssh 就不会要求输入密码。

    以非 root 用户身份运行时,您可能无法在没有密码的情况下以 root 身份进行 ssh;在这种情况下,您需要:

    • ssh 作为您的 CGI 脚本运行的同一用户

    • 让远程服务器上执行的命令运行 suid 脚本,如上文针对本地情况所述。

如果您需要进一步的指导,您需要发布特定的代码片段和错误消息或故障排除详细信息,以便我们评估问题所在。

于 2013-06-28T17:18:50.180 回答