Pypyでサンドボックス化されたサブプロセスが、限定されたプロトコルを使用して親プロセスと通信できるようにしようとしています。サンドボックス化されたPypyのソケットモジュールの使用
Pypyに含まれているpypy/pypy/translator/sandbox/sandlib.py
のソースコードを確認したところで、os.open
がソケットを開くことを許可するVirtualizedSocketProc
があるようです。コードの一部の機能を変更しました(たとえば、限られたポートでTCP接続を許可するなど)がほとんど変更されていません。しかし、実際にはPypyのsocket
モジュールをインポートすることができません。なぜなら、存在しない_socket
モジュールが必要なためです。これは、コードのインタプリタレベルの部分にあるようです。
私が実行しようとしていることは実現可能ですか?もしそうなら、私はどのようにソケットモジュールをインポートするのですか?そうでない場合は、他に何ができますか?
「保護された」環境からソケットを開こうとする理由をより詳しく説明できますか? (私が何度も似たようなことをしたと判断したわけではありません。あなたが考えなかったかもしれないアプローチがあります)。より詳細な質問に答える方が簡単でしょう。 – synthesizerpatel
私は、サンドボックスプロセスが親プロセスと通信できるようにしようとしています。ソケットを開くのは良いアイデアのようでした。私は、ポート番号、ホストなどを制限するコントロールを用意しています。ソケットは、2つのプロセスが通信するための簡単な方法のようです。 – nickname
具体的には、サンドボックスの外で利用できるいくつかの機能へのアクセスを制限したいと考えています。 – nickname