从 Web UI 与本地 Perl 脚本交互

Posted

技术标签:

【中文标题】从 Web UI 与本地 Perl 脚本交互【英文标题】:Interfacing with Local Perl Script from a Web UI 【发布时间】:2012-06-15 18:45:50 【问题描述】:

鉴于我有一个本地 Perl 脚本,可以在 Windows 命令提示符中打印“Hello”。

我想创建一个 Web 界面,当我使用 javascript 或其他工具单击 html 页面上的按钮时,我将能够执行这个本地 Perl 脚本。我曾尝试在 Xampp Apache 服务器中的 Localhost 上托管页面,但这使用了安装在 Xampp 上的 Perl。

是否可以从 Web 用户界面与本地 Perl 交互?即从 Web UI 在本地 shell 中运行 perl 脚本。

【问题讨论】:

这听起来像是一场潜在的安全噩梦...... 您能解释一下原因吗?我写这篇文章是为了完全离线。我只想使用 Web UI 作为 Perl 脚本的 GUI。 JavaScript 并非旨在允许服务器将代码推送到浏览器,从而导致用户系统上的应用程序被执行。想象一下,如果你可以执行 fdisk。 在这种情况下,您可以使用Dancer、Mojolicious 或Catalyst 来设置运行localhost 的网络应用程序。 一种方法是让用户合作运行一个守护进程,该守护进程在某个端口上侦听请求,并在收到提示时采取一些行动。起初似乎很难推销,但它比您起初可能怀疑的要普遍得多。当然,没有人真的想为您安装 Apache。但是 Yahoo 和 Skype 在让您安装守护程序方面非常成功:Yahoo Messenger。您有责任确保您提供给某人安装的守护程序没有充满安全漏洞。这部分很难。 【参考方案1】:

我通常运行一个 perl 脚本,它作为原始 Web 服务器工作。启动时,它会打印一个可用于访问它的 URL。

这可以通过以下模块来完成:

use HTTP::Daemon;
use HTTP::Status;
use HTTP::Response;

大约 60 行代码。

无法发布我的代码,但这里有一个更详细的示例(它使用 fork,这是对我现有的改进):http://www.perlmonks.org/?node_id=415908

【讨论】:

【参考方案2】:

查看Node JS...它可以从网页调用perl,设置和获取本地主机站点非常简单,并且是免费的。

【讨论】:

以上是关于从 Web UI 与本地 Perl 脚本交互的主要内容,如果未能解决你的问题,请参考以下文章

如何将信息从 web 传递到 perl 脚本?

正确理解web交互中的cookie与session

Perl:将当前目录包含到@INC吗?

使用 Perl 和 OpenSSH 与 Switch 交互

Node: 使用Express脚本库搭建本地的Web服务器

ASP,JSP,JSP,Python,Ruby,PERL 脚本语言的的特征和优点