ホームページ  >  記事  >  バックエンド開発  >  Python の os.system() 呼び出しでファイル名と引数を安全にエスケープするにはどうすればよいですか?

Python の os.system() 呼び出しでファイル名と引数を安全にエスケープするにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-10-28 22:18:02756ブラウズ

How can I safely escape filenames and arguments in os.system() calls in Python?

os.system() 呼び出しのエスケープ

os.system() 呼び出しでファイル名と引数をエスケープし、さまざまな言語で特殊文字を効果的に処理します。オペレーティング システムとシェルを使用する場合は、ライブラリ関数を利用することをお勧めします。

shlex.quote() および Pipes.quote()

Python 3 ユーザーは shlex.quote( )、Python 2 と Python 3 の両方を使用する場合は Pipes.quote() を使用できます。これらの関数は文字列をエスケープするための効率的かつ堅牢なオプションとして機能し、文字列をパラメーターとしてコマンドに簡単に渡すことができます。

Python 3 の shlex.quote() の使用:

<code class="python">import shlex

escaped_filename = shlex.quote(filename)
os.system("cat %s" % escaped_filename)</code>

Python 2 および Python 3 での Pipes.quote() の使用:

<code class="python">import pipes

escaped_filename = pipes.quote(filename)
os.system("cat %s" % escaped_filename)</code>

シンプルさとセキュリティに関する考慮事項:

引用符を使用することは依然として実行可能な解決策ですが、潜在的なセキュリティ上の懸念に留意することが不可欠です。 os.system() を使用する場合、入力文字列のソースが信頼でき、悪意のある悪用の影響を受けにくいことを確認することが重要です。

以上がPython の os.system() 呼び出しでファイル名と引数を安全にエスケープするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。