Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
if(isset($_POST['handler'])){
if(is_file(PDT_WORKING_DIR.'/handlers/'.$_POST['handler'].'.php')){
include(PDT_WORKING_DIR.'/handlers/'.$_POST['handler'].'.php');
}else{
PDT_HandleError('Handler <b>'.$_POST['handler'].'</b> not found');
}
}elseif($_POST){
PDT_HandleError('Неверный запрос');
}else{
include(PDT_WORKING_DIR.'/media/templates/pdt_index.html');
}
<?php
$from = array("`","~","!","@","#","$","%","^","&","*","(",")","-","=","+","\\","|","?","/",",",";",":","№","'","\"",".");
$_POST['args']['script'] = str_replace($from, '_', $_POST['args']['script']);
$_POST['args']['script'] = preg_replace('/\_+/','_', $_POST['args']['script']);
if($_POST['args']['script']!='_'&&$_POST['args']['script']){
$src = fopen(PDT_WORKING_DIR.'/scripts/'.$_POST['args']['script'].'.php','w');
fwrite($src, '<?php
// Содержимое скрипта
?>');
echo json_encode(array('script'=>$_POST['args']['script']));
}else{
echo json_encode(array('error'=>'В названии скрипта не должно быть спецсимволов, имя не может быть пустой строкой'));
}
?>
Все действия обрабатываются через файл index.php, для обеспечения безопасности в доступе к утилите достаточно:
— Создать в папке с утилитой файл .htaccess, прописать в нем запрет на доступ к папкам «data», «handlers», «scripts»
— Прописать в начале файла index.php перед всеми обработчиками свою систему защиты.
Внимание! Учтите, что доступ к утилите могут иметь другие пользователи / посетители сайта. Без применения соответствующих мер, данная утилита являет собой большую угрозу для безопасности.
Утилита писалась без мысли о том, чтоб выйти в мир, во всеобщее употребление. Выложил только из-за мысли, что кому-то может пригодиться.
Утилита для запуска PHP-скриптов в фоновом режиме