そのため、Python API を公開するサードパーティ アプリケーションがあります。そのサードパーティアプリケーションで必要なことを実行するPythonスクリプトがあります。
Python スクリプトはコマンド ライン引数のみを使用し、ユーザー入力は使用せず、stdout に書き込みます。
ASP.NET Web サイトから実行時に起動されるように配線しています。Python は非常に強力なので、ハードコードされた、またはローカルで読み取られた (App.Config) スクリプト パスを使用して Python プロセスを起動し、そのコマンド ライン引数をパイソンプロセス。
この新しい実行可能ファイルは、攻撃者が任意の Python コードをアップロードして起動するのを防ぐ方法として、.NET アプリケーションから起動されるのでしょうか? これは攻撃ベクトルを無効にしますか、それとも複雑さが増しただけですか?
また、サードパーティの拡張機能は CPython 専用に作成されているため、IronPython は使用できません。
コードのアイデア:
Process p = new Process();
p.StartInfo.FileName = "python.exe";
p.StartInfo.Arguments = "goodscript.py \"" + argument1.Replace("\"","\\\"") + "\" \"" +
argument2.Replace("\"","\\\"") + "\"";
p.Start();
-i のようなコマンド ライン スイッチが挿入されるか、goodscript.py へのファイル パスが別のスクリプトを指すように変更される可能性があるのではないかと心配しています。後者が可能であれば、実際には python.exe へのファイルパスを別の実行可能ファイルパスに変更できると思います。