Mohamed CHAARI wrote:
> Hi all,
> 
> I have to execute an external command, with an argument
> (filename or directory name) given by user input (via a
> form), ie something like this:
> 
> exec('ls $_POST[...]')
> 
> what do you think about using escapeshellarg() function in
> this case ?
> can I rely on it to have a secure solution ? or is there a risk ? ...
> 
> 
> thank you.

In addition to using escapeshellarg(), I would first determine if the input
file or directory exists before executing the command.  This adds another
layer of protection.

<?php

// Example code

if(file_exists($_POST['file_or_dir_name'])) {
        $command = "ls ".escapeshellarg($_POST['file_or_dir_name']);    
        exec($command);
} else {
        echo "File/Directory does not exist!!";
}
?>

-B

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to