(PHP 4, PHP 5, PHP 7)
escapeshellcmd — Escapar meta-caracteres del intérprete de comandos
$command
) : stringescapeshellcmd() escapa cualquier caracter en una cadena que pudiera ser usada para engañar a un comando shell para que ejecute comandos arbitrarios. Esta función debería usarse para asegurarse de que cualquier información procedente de la entrada del usuario sea escapada antes de que dicha información sea pasada a las funciones exec() o system(), o al operador de comilla invertida.
Los siguientes caracteres son precedidos por una barra invertida: #&;`|*?~<>^()[]{}$\, \x0A y \xFF. ' y " son escapados únicamente si no están emparejados. En Windows, todos estos caracteres más % son reemplazados en su lugar por un espacio.
command
El comando a ser escapado.
La cadena escapada.
Ejemplo #1 Ejemplo de escapeshellcmd()
<?php
// Permitimos intencionadamente un número arbitrario de argumentos aquí.
$comando = './configure '.$_POST['configure_options'];
$comando_escapado = escapeshellcmd($comando);
system($comando_escapado);
?>
escapeshellcmd() debería usarse en la cadena de comandos completa, y aún permitir al atacante pasar un número de argumentos arbitrario. Para escapar un único argumento se debería usar en su lugar la función escapeshellarg().