$allowedScripts = array (
'foo' => array(
'path' => 'c:\bin\foo.bat',
'args' => 'arg1 arg2',
'auth_users' => array(
'mom', 'dad'
)
),
'boo' => array(
'path' => 'c:\bin\boo.bat',
'args' => '',
'auth_users' => array(
'dad'
)
)
);
<?php
set_time_limit(0);
$allowedScripts = array( 'foo.bat', 'moo.bat', 'goo.bat' );
$bat = $_REQUEST[ 'mybat' ];
if ( empty( $bat ) ) {
echo '<html><body>';
for ( $i = 0, $n = count( $allowedScripts ); $i < $n; $i++ ) {
echo '<a href="bat.php?foo.bat">'.$allowedScripts[ $i ].'</a><br/>';
}
echo '</body></html>';
}
if ( !isset( $allowedScripts[ $bat ] ) ) {
echo 'Go away you dirty хацкер!'
exit;
}
echo '<a href="bat.php">К списку скриптов</a>';
echo '<xmp>';
passthru( $bat );
echo '</xmp>';
echo '<a href="bat.php">К списку скриптов</a>';
?>
Как говорил начальник ЖЕКа сотрудникам сантехнического отдела перед началом смены — Good luck with leak hunting! :)