escapeshellcmd

(PHP 4, PHP 5, PHP 7)

escapeshellcmdProtège les caractères spéciaux du Shell

Description

escapeshellcmd ( string $command ) : string

escapeshellcmd() échappe tous les caractères de la chaîne command qui pourraient avoir une signification spéciale dans une commande Shell. Cette fonction permet de s'assurer que la commande sera correctement passée à l'exécuteur de commande Shell exec() et system(), ou encore à guillemets obliques.

Les caractères suivants seront échappés : &#;`|*?~<>^()[]{}$\, \x0A et \xFF. ' et " sont échappés que s'ils ne sont pas par paire. Sous Windows, tous ces caractères ainsi que % et ! sont remplacés par un espace.

Liste de paramètres

command

La commande à échapper.

Valeurs de retour

La chaîne échappée.

Exemples

Exemple #1 Exemple avec escapeshellcmd()

<?php
// Nous autorisons un nombre arbitraire d'arguments de façon intentionnelle ici.
$command './configure '.$_POST['configure_options'];

$escaped_command escapeshellcmd($command);
 
system($escaped_command);
?>

Avertissement

La fonction escapeshellcmd() doit être utilisée sur toute la chaîne de commande, et elle autorise les personnes mal intentionnées de passer un nombre d'arguments arbitraire. Pour échapper un seul argument, la fonction escapeshellarg() devrait être utilisée à la place.

Historique

Version Description
5.4.43, 5.5.27, 5.6.11 Les points d'exclamation sont remplacés par des espaces.

Voir aussi