【问题标题】:Executing user shell command from python cgi从 python cgi 执行用户 shell 命令
【发布时间】:2012-12-10 13:20:09
【问题描述】:

我有一个任务分配给我创建一个 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 模块?如果没有,那我该如何实现呢?

【问题讨论】:

  • 您想要 CGI 在 用户 的机器上执行代码吗?你确定吗?
  • 是的,我想在用户机器上执行命令。
  • 不,幸运的是,访问用户的计算机并不容易!
  • 不可能(无论如何都不是通过 CGI),当然也不是完全独立于浏览器/操作系统的方式。这个工具的基本原理是什么?
  • 我们要的操作系统是linux,这个是合理的。普通用户需要记住与他们共享的长命令。

标签: python linux cgi


【解决方案1】:

您可以在用户的机器上执行的最好的就是javascript 除此之外的任何事情都会损害安全性,因此显然是不可能的

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2013-08-25
      • 1970-01-01
      • 1970-01-01
      • 2010-10-30
      • 2011-06-15
      • 2018-02-27
      • 1970-01-01
      • 2014-04-21
      • 2014-01-22
      相关资源
      最近更新 更多