ファイルのロード中に任意にオペレーティング システム コマンドを呼び出すことができる Python コマンドの実行を避けるため、Python サンドボックスを実装しました。[基本設定] > [スクリプト]で設定できます。既定では、サンドボックスは有効で、次の操作はブロックされます。
プロジェクト ファイルに含まれる Python スクリプトがこれらのいずれかの操作を処理しようとすると、警告ダイアログ ボックスが表示されます。その後、操作を手動で許可またはブロックすることができます。
[今後のすべてのインスタンスにこのアクションを適用]を選択すると、で選択したアクションが、同じコマンドの後続のすべてのオカレンスに適用されます。
アクション[このプロジェクトを許可]を選択すると、新しいシーンが呼び出されるか、別のプロジェクト ファイルがロードされるまで、操作を実行できます。
[実行しない]を選択すると、操作がブロックされ、Python 例外が発生します。
Python サンドボックスを有効化、無効化、または設定するには、スクリプトの基本設定を使用します。
[Python サンドボックスを有効化]: Python サンドボックスを有効または無効にするために使用します。サンドボックスを無効にすると、スクリプトの実行に関する制限が設定されません。有効にすると、Python スクリプトで新しいネットワーク接続を作成したり、Python IO モジュールを介したファイル システムへのアクセスを提供したり、新しいプロセスを開始したりする操作がブロックされます。
[高度な検索]: 例外を設定するために使用します。有効にすると、VRED は[許可された機能]に追加された機能と、[許可されたモジュール]に追加されたモジュール例外をチェックします。
socket
が許可リストに追加されると、ソケット モジュールによって提供されるすべての機能がブロックされなくなります。
許可された機能のリストに socket.getaddrinfo
が追加されると、ソケット モジュールによって提供される機能 getaddrinfo
のみがブロックされなくなります。
許可されるモジュール例外は、Python サンドボックスからカスタム Python モジュールを除外するためにも使用できます。
基本設定に加えて、サンドボックスはコマンド ライン オプションと環境変数でコントロールすることもできます。
-insecure_python
を使用します。-force_secure_python
を使用します。VRED_SECURE_PYTHON
を設定します。