0

我有一个任务分配给我来创建一个 python 脚本,当它作为 cgi 调用时应该在用户机器上执行命令。

我是否可以执行从 html 表单传递给 python cgi 的 shell 命令?

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html; charset=ISO-8859-1"
 http-equiv="content-type">
  <title>xyz</title>
</head>
<body>
<big><big>Login
Here<br>
<br>
</big></big>
<form action="/var/www/cgi-bin/xyz.py" name="xyzform"><big>xyz
<br>
 enter your value<br>
  <input name="text"><br>
  <br>
  <br>
<input type="submit">
  <br>
</form>
&nbsp;__&nbsp;<br>
</body>
</html>

当用户提交此表单时,文本应在 python cgi 中匹配,然后执行命令以访问用户调用机器上 nfs 中的文件。

是否可以使用 cgi 或 cgitb 模块?如果没有,那么我该如何实现呢?

4

2 回答 2

1

你可以在用户机器上执行的最好的就是javascript

于 2012-12-10T19:52:34.433 回答
1

通常出于安全原因和设计,您不能使用典型的 Web 技术在用户机器上执行代码。但这样做是可能的,有时是必要的。一个示例是基于 Web 的应用程序,它具有需要与用户的硬件设备交互的某些屏幕。以下是一些潜在的解决方案,可让您在用户机器上执行代码:

  1. ActiveX仅适用于 IE 且仅适用于 Windows。但这会让你编写在用户机器上执行的代码。
  2. 使用 nsIProcess 的 Firefox 扩展。这是我过去使用过的一种不错的跨操作系统方法。它将在 Linux、Win、Mac 上运行,让我们创建一个可以在机器上执行代码的扩展。然后您的网页可以与您的扩展程序通信以运行您需要的代码。
  3. Window 的 RPC是一种可以从服务器在用户机器上执行代码的方法。这只有在所有机器都是 windows 机器并且通常所有机器都在同一个 LAN 上并且属于同一个 windows 域的情况下才有效。您的服务器还应该在域上具有在用户桌面上执行代码的权限。这样做的真正好处是您不必在用户计算机上安装任何东西,而且它是跨浏览器兼容的。

我相信有很多方法可以做到这一点,上面的列表只是其中的一个示例。实现这一点时,牢记安全性非常重要。您必须在您的设计中非常确定,只有您的网站应该被授权这样做才能在用户计算机上执行命令。

于 2012-12-11T03:41:35.133 回答