サブプロセス(shell = False)内で使用する前に、外部ソース(例:xmlファイル)からファイル名をサニタイズする一般的な方法は何ですか?ファイル名を正しくサニタイズする方法(シェルインジェクションから保護する)?
更新: いくつかのパースされた文字列を送信する前に、いくつかの基本的なセキュリティチェックを行いたいと思います。この例では、リモートモードでmpg123(コマンドラインaudioplayer)を使用してサウンドファイルを再生します。
filename = child.find("filename").text # e.g.: filename = "sound.mp3"
pid = subprocess.Popen(["mpg123"],"-R"], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
command = "L "+filename+"\n"
pid.stdin.write(command.encode())
シェルが関係していない場合、なぜファイル名をサニタイズしたいのですか? – lunaryorn
システム/プライベートファイルの上書きや読み取りを避けるには? – TryPyPy
サニタイズは何ですか?あなたは詳細を与える必要があります。 – marcog