Maison >développement back-end >Tutoriel Python >Comment puis-je échapper en toute sécurité aux noms de fichiers et aux arguments dans les appels os.system() en Python ?
Échapper aux appels os.system()
Pour échapper aux noms de fichiers et aux arguments dans les appels os.system(), en gérant efficacement les caractères spéciaux dans différents systèmes d'exploitation et shells, il est recommandé d'utiliser les fonctions de la bibliothèque.
shlex.quote() et pipes.quote()
Les utilisateurs de Python 3 peuvent exploiter shlex.quote( ), tandis que ceux qui utilisent à la fois Python 2 et Python 3 peuvent utiliser pipes.quote(). Ces fonctions constituent des options efficaces et robustes pour échapper des chaînes, vous permettant de les transmettre facilement en tant que paramètres aux commandes.
Utilisation de shlex.quote() pour Python 3 :
<code class="python">import shlex escaped_filename = shlex.quote(filename) os.system("cat %s" % escaped_filename)</code>
Utilisation de pipes.quote() pour Python 2 et Python 3 :
<code class="python">import pipes escaped_filename = pipes.quote(filename) os.system("cat %s" % escaped_filename)</code>
Considérations sur la simplicité et la sécurité :
Pendant que l'utilisation de guillemets reste une solution viable, il est essentiel d'être attentif aux éventuels problèmes de sécurité. Lors de l'utilisation de os.system(), il est crucial de s'assurer que la source des chaînes d'entrée est digne de confiance et n'est pas susceptible d'être exploitée de manière malveillante.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!