escapeshellcmd

(PHP 4, PHP 5, PHP 7)

escapeshellcmdEscapar meta-caracteres del intérprete de comandos

Descripción

escapeshellcmd ( string $command ) : string

escapeshellcmd() 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.

Parámetros

command

El comando a ser escapado.

Valores devueltos

La cadena escapada.

Ejemplos

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);
?>

Advertencia

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().

Ver también