0

cgiとして呼び出されたときにユーザーマシンでコマンドを実行するPythonスクリプトを作成するタスクが割り当てられています。

HTMLフォームからpython cgiに渡されたシェルコマンドを実行することは可能ですか?

<!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

通常、セキュリティ上の理由と設計上、一般的な Web テクノロジを使用してユーザーのマシンでコードを実行することはできません。しかし、そのようなことをすることは可能であり、時には必要です。一例として、ユーザーのハードウェア デバイスと対話する必要がある特定の画面を持つ Web ベースのアプリケーションがあります。ユーザーのマシンでコードを実行できるようにするためのいくつかの解決策を次に示します。

  1. ActiveXは、IE および Windows でのみ機能します。ただし、これにより、ユーザーのマシンで実行されるコードを記述できます。
  2. nsIProcess を使用した Firefox 拡張機能。これは、私が過去に使用した優れたクロス OS アプローチです。Linux、Win、Mac で動作し、マシン上でコードを実行できる拡張機能を作成できます。その後、Web ページは拡張機能と通信して、必要なコードを実行できます。
  3. Windows の RPCは、サーバーからユーザーのマシンでコードを実行できるアプローチです。これは、すべてのマシンが Windows マシンであり、通常、すべてのマシンが同じ LAN 上にあり、同じ Windows ドメインの一部である場合にのみ機能します。サーバーには、ユーザーのデスクトップでコードを実行するためのドメインに対する権限も必要です。これの本当の利点は、ユーザーのコンピューターに何もインストールする必要がなく、ブラウザー間の互換性があることです。

これを行う方法はたくさんあると思いますが、上記のリストはほんの一例です。これを実装するときは、セキュリティに留意することが非常に重要です。ユーザーのコンピューターでコマンドを実行できるのは、許可されている必要がある Web サイトのみであることを設計する必要があります。

于 2012-12-11T03:41:35.133 に答える
1

ユーザーのマシンで実行できる最善の方法は JavaScript です。それ以上のものはセキュリティを損なうため、明らかに不可能です。

于 2012-12-10T19:52:34.433 に答える