безопасность — Как обезопасить php онлайн редактор в php?

Я создал php-редактор, используя функцию file, где пользователи могут запускать код онлайн и получать результат на той же странице.

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 — целевой файл, он обновляется формой.

Это все работает, как ожидалось. Моя проблема в том, что я хочу отключить все функции file, directory, mail () и ftp для этого редактора, чтобы пользователи не могли аварийно завершить работу сайта.

Есть ли способ отключить эти функции только для моего редактора?

3

Решение

Вы можете передать в disable_functions, т. Е. «Список функций, разделенных запятыми, которые нужно отключить в пределах суб-интерпретатора песочницы».

Проверьте Runkit_Sandbox. Вы должны сделать редактор доступным как песочница.

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector