ホームページ >バックエンド開発 >Python チュートリアル >os.system() 呼び出しの文字を安全にエスケープする方法
os.system() 呼び出しのエスケープ文字
os.system() を利用する場合、ファイル名と引数を適切にエスケープすることが重要です。 。この問題に対処し、複数のオペレーティング システムとシェル (主に bash) のサポートを提供するソリューションを次に示します。
引用符の使用
最も簡単で安全なアプローチは、コマンドを囲むことです。二重引用符または一重引用符で囲まれた引数:
os.system("my_command 'argument with spaces'")
shlex または Pipes を使用したエスケープ
引用符が適切でない場合は、shlex または Pipes モジュールを使用できます。文字をエスケープするには:
使用例
を実行するとします。 os.system() を使用したコマンド「cat input.txt | grep 'find something' | sort > Output.txt」。 shlex.quote() を使用すると、コードは次のようになります。
import shlex cmd = "cat {} | grep '{}' | sort > {}".format( shlex.quote("input.txt"), shlex.quote("find something"), shlex.quote("output.txt"), ) os.system(cmd)
セキュリティに関する注意事項
一方、os.system() は、迅速かつ直接的な実行方法を提供します。システム コマンドを使用する場合は、潜在的なセキュリティ脆弱性を考慮することが重要です。 os.system().
を使用する前に、ユーザーが生成した入力または信頼できない入力が適切に検証され、サニタイズされていることを確認してください。以上がos.system() 呼び出しの文字を安全にエスケープする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。