(2003-2009) * @author Froxlor team (2010-) * @license GPLv2 http://files.froxlor.org/misc/COPYING.txt * @package Functions * */ /** * Wrapper around the exec command. * * @param string exec_string String to be executed * * @return string The result of the exec() */ function safe_exec($exec_string, &$return_value = false) { // check for bad signs in execute command if ((stristr($exec_string, ';')) || (stristr($exec_string, '|')) || (stristr($exec_string, '&')) || (stristr($exec_string, '>')) || (stristr($exec_string, '<')) || (stristr($exec_string, '`')) || (stristr($exec_string, '$')) || (stristr($exec_string, '~')) || (stristr($exec_string, '?')) ) { die('SECURITY CHECK FAILED!' . "\n" . 'The execute string "' . htmlspecialchars($exec_string) . '" is a possible security risk!' . "\n" . 'Please check your whole server for security problems by hand!' . "\n"); } // execute the command and return output $return = ''; // ------------------------------------------------------------------------------- if ($return_value == false) { exec($exec_string, $return); } else { exec($exec_string, $return, $return_value); } return $return; }