簡體   English   中英

從python cgi執行用戶shell命令

[英]Executing user shell command from python cgi

我有一個任務分配給我創建一個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模塊? 如果沒有,那我該怎么做呢?

你可以在用戶的機器上執行的最好是javascript除此之外的任何東西都會危及安全性,因此顯然是不可能的

通常出於安全原因和設計,您無法使用典型的Web技術在用戶計算機上執行代碼。 但是有可能並且有時需要做這樣的事情。 一個示例是基於Web的應用程序,其具有需要與用戶的硬件設備交互的某些屏幕。 以下是一些可以讓您在用戶計算機上執行代碼的潛在解決方案:

  1. ActiveX僅適用於IE,僅適用於Windows。 但是這將允許您編寫在用戶計算機上執行的代碼。
  2. 使用nsIProcess的Firefox擴展 這是我過去使用的一種很好的交叉操作系統方法。 它將在Linux,Win,Mac上運行,讓你創建一個可以在機器上執行代碼的擴展。 然后,您的網頁可以與您的擴展程序通信,以運行您需要的代碼。
  3. Window的RPC是一種可以從服務器在用戶機器上執行代碼的方法。 這僅在所有計算機都是Windows計算機時才有效,並且通常所有計算機都在同一個LAN上,並且是同一個Windows域的一部分。 您的服務器還應具有域上的權限,以在用戶的​​桌面上執行代碼。 這樣做的真正好處是您不必在用戶計算機中安裝任何東西,並且它是跨瀏覽器兼容的。

我確信有很多方法可以做到這一點,上面的列表只是它們的一個例子。 實現這一點時,牢記安全性非常重要。 您必須在設計中確定只有您應該被授權執行此類操作的網站才能在用戶計算機上執行命令。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM