Я создал php-редактор, используя функцию файла, где пользователи могут запускать код онлайн и получать результат на той же странице.Как защитить php-редактор в php?
executephp5.php
<form action="<?php echo $_SERVER['PHP_SELF'];?>"method="post">
<b>Write your code here</b>
<textarea name="code"></textarea>
<input type="submit"value="Run code">
</form>
<?php
$cd=stripslashes($_POST['code']);
#dont write empty textarea
if(empty($cd)) {
echo "";
} else {
$file=fopen("demo.php","w");
echo fwrite($file, $cd);
fclose($file);
}
?>
<b>Results:</b>
<hr>
<?php
error_reporting(E_ALL);
include "demo.php";
?>
demo.php является целевым файлом он обновляется по форме.
Это все работает так, как ожидалось. Моя проблема в том, что я хочу отключить все файлы, директорию, почту() и ftp-функции для этого редактора, чтобы пользователи не могли сбой сайта.
Есть ли способ отключить эти функции только для моего редактора?
Вы можете начать с блокировки большинства вещей через 'php.ini', если у вас есть сервер (надеюсь, Linux), вы можете заблокировать это в собственной тюрьме без корневого доступа/etc/etc. Стоит посмотреть, как это делается [TehPlayground.com] (http://tehplaygroud.com), вот их [Repo] (https://github.com/thesilvervestgroup/tehplayground/) – Darren
Ответ идентичен http : //stackoverflow.com/questions/3115559/exploitable-php-functions – apscience
использовать 'disable_functions' в ini-файле. http://php.net/manual/en/ini.core.php#ini.disable-functions – Jigar