escapeshellcmd
(PHP 4, PHP 5)
escapeshellcmd — Escapar meta-caracteres del intérprete de comandos
Descripción
$command
)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);
?>
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
- escapeshellarg() - Escapar una cadena a ser usada como argumento del intérprete de comandos
- exec() - Ejecutar un programa externo
- popen() - Abre un proceso de un puntero a un fichero
- system() - Ejecutar un programa externo y mostrar su salida
- operador de comilla invertida