WebベースのPythonインタラクティブシェルを作成する方法

goFrendiAsgard

https://www.pythonanywhere.com/try-ipython/のようなサイトはどのように機能しますか?

彼らはおそらくいくつかのexecコマンドを実行するか、ipythonとインターフェースします。

ただし、「予防措置」(実施した)を行わなかった場合、これは非常に安全ではない可能性があります。単なる(そして邪悪な)ユーザーは次のようなことをすることができます

import shutil, os

そして何か悪いことをします。

技術的にどのようにweb based python interactive shell可能ですか?そして、インタラクティブシェルがプロバイダーに悪い影響を与えないようにするにはどうすればよいでしょうか。

ジャイルズトーマス

PythonAnywhere開発者はこちら。私たちは、ファイルシステムの刑務所、低特権アカウント、ulimit制限、およびcgroupを組み合わせてサンドボックス化を行います。さらに、いくつかの複雑なiptablesルーティング。

将来的にはLXCまたはDockerに移行する可能性があります。2012年にシステムの最初のバージョンをリリースしたときに本番環境で使用できたものに基づいて、現在使用している特定の組み合わせを選択しました。今日はゼロから始めて、別の方法で行います。

それは私たちの現在のシステムが悪いと言っているわけではありません-それは本当にうまく機能します。しかし、それは、現在利用可能なものを使用した場合に取り除くことができる多くのコードが含まれていることを意味し、単純なコードの方が明らかに優れています:-)

[編集] EuroPythonで行ったこの講演がおもしろいと思うかもしれないことも付け加えておきます。シェルの動作のセキュリティ面については触れていませんが、シェルの実行に必要なものがたくさん含まれているため、質問の主題(WebベースのPythonインタラクティブシェルの作成方法)に関連しています。ブラウザで、サーバー上で実行されているPythonプロセスに接続します。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Pythonのcmdモジュールに基づいてインタラクティブシェルの自動テストを作成する

分類Dev

インタラクティブなbashシェルで前のパラメーターを参照する方法は?

分類Dev

インタラクティブなラベルを作成する方法は?

分類Dev

VS2012単体テストを使用すると、コンストラクターなしでオブジェクトを作成し、そのプライベートフィールドを設定する方法があります。

分類Dev

同じパーティション テーブルを持たない別のドライブにシステムのクローンを作成するときに、システムのパーティション テーブルを編集する方法は?

分類Dev

反応ネイティブルーターフラックスで前のシーン名を取得する方法

分類Dev

scrotとgnomeのカスタムショートカットを作成する方法-スクリーンショットインタラクティブモード

分類Dev

`ssh user @ server mycommand`がインタラクティブシェルを作成するのはなぜですか?

分類Dev

Cを使用してシェルを作成する。インタラクティブモードとバッチモードを区別する方法

分類Dev

sqlite、大規模データベースのテーブルのインデックスを再作成する方法

分類Dev

インタラクティブシェルで辞書の辞書にアクセスする方法

分類Dev

一連のクラスをjarライブラリからjpaエンティティにマップしてデータベーステーブルを作成する方法

分類Dev

Pythonサブプロセスでインタラクティブシェルを処理する

分類Dev

複数のプロジェクトでカスタムスキャフォールディングを作成する方法(mvc +クラスライブラリ)

分類Dev

シェルスクリプト:POSIXシステムでCPUベンダーをプログラムで取得するためのポータブルな方法

分類Dev

「ulimit-Su」は、インタラクティブログインサブシェルで作成されるユーザープロセスとそこで作成されるtmuxセッションの数を制限しますか?

分類Dev

1台のマシンに複数のインタラクティブエージェントをインストールすることは可能ですか?

分類Dev

Centosのyumを介してすべてのインタラクティブシェルで提供されたスクリプトをインストールおよびアンインストールする方法は?

分類Dev

スクリプト内でインタラクティブのシェル履歴拡張を使用する

分類Dev

web3pyのコントラクトによって作成されたコントラクトのイベントフィルターを作成する方法

分類Dev

ベースクラスインターフェイスからサブクラスのプロパティをオーバーライドする

分類Dev

Railsのクライアントごとに異なるテーブルを使用して個別のデータベースを作成する方法

分類Dev

インタラクティブなbashシェルセッションでファイルを取得する方法

分類Dev

Luaを介してインタラクティブなGTKインターフェースを作成する

分類Dev

シリアライザークラスの中間テーブルフィールドを使用してデータベースエントリを作成するにはどうすればよいですか?

分類Dev

データベーステーブルでインデックスを作成する必要があるフィールドを決定する方法

分類Dev

インタラクティブなPythonシェルで最後の結果を取得する

分類Dev

インターフェイス型の配列プロパティを使用してオブジェクトをシリアル化する方法は?

分類Dev

Powershellのイベントでアクティブ化するWindowsタスクを作成する方法

Related 関連記事

  1. 1

    Pythonのcmdモジュールに基づいてインタラクティブシェルの自動テストを作成する

  2. 2

    インタラクティブなbashシェルで前のパラメーターを参照する方法は?

  3. 3

    インタラクティブなラベルを作成する方法は?

  4. 4

    VS2012単体テストを使用すると、コンストラクターなしでオブジェクトを作成し、そのプライベートフィールドを設定する方法があります。

  5. 5

    同じパーティション テーブルを持たない別のドライブにシステムのクローンを作成するときに、システムのパーティション テーブルを編集する方法は?

  6. 6

    反応ネイティブルーターフラックスで前のシーン名を取得する方法

  7. 7

    scrotとgnomeのカスタムショートカットを作成する方法-スクリーンショットインタラクティブモード

  8. 8

    `ssh user @ server mycommand`がインタラクティブシェルを作成するのはなぜですか?

  9. 9

    Cを使用してシェルを作成する。インタラクティブモードとバッチモードを区別する方法

  10. 10

    sqlite、大規模データベースのテーブルのインデックスを再作成する方法

  11. 11

    インタラクティブシェルで辞書の辞書にアクセスする方法

  12. 12

    一連のクラスをjarライブラリからjpaエンティティにマップしてデータベーステーブルを作成する方法

  13. 13

    Pythonサブプロセスでインタラクティブシェルを処理する

  14. 14

    複数のプロジェクトでカスタムスキャフォールディングを作成する方法(mvc +クラスライブラリ)

  15. 15

    シェルスクリプト:POSIXシステムでCPUベンダーをプログラムで取得するためのポータブルな方法

  16. 16

    「ulimit-Su」は、インタラクティブログインサブシェルで作成されるユーザープロセスとそこで作成されるtmuxセッションの数を制限しますか?

  17. 17

    1台のマシンに複数のインタラクティブエージェントをインストールすることは可能ですか?

  18. 18

    Centosのyumを介してすべてのインタラクティブシェルで提供されたスクリプトをインストールおよびアンインストールする方法は?

  19. 19

    スクリプト内でインタラクティブのシェル履歴拡張を使用する

  20. 20

    web3pyのコントラクトによって作成されたコントラクトのイベントフィルターを作成する方法

  21. 21

    ベースクラスインターフェイスからサブクラスのプロパティをオーバーライドする

  22. 22

    Railsのクライアントごとに異なるテーブルを使用して個別のデータベースを作成する方法

  23. 23

    インタラクティブなbashシェルセッションでファイルを取得する方法

  24. 24

    Luaを介してインタラクティブなGTKインターフェースを作成する

  25. 25

    シリアライザークラスの中間テーブルフィールドを使用してデータベースエントリを作成するにはどうすればよいですか?

  26. 26

    データベーステーブルでインデックスを作成する必要があるフィールドを決定する方法

  27. 27

    インタラクティブなPythonシェルで最後の結果を取得する

  28. 28

    インターフェイス型の配列プロパティを使用してオブジェクトをシリアル化する方法は?

  29. 29

    Powershellのイベントでアクティブ化するWindowsタスクを作成する方法

ホットタグ

アーカイブ