Страницы

Поиск по вопросам

понедельник, 1 октября 2018 г.

Безопасный запуск php файла

Здравствуйте. Делаю что-то вроде сайта с редактором PHP кода. При нажатии на клавишу просмотра, у меня в специальной директории создаётся папка с уникальным id и в ней файл с самим php кодом (пример: /_projects/6dfh78d76dfg87/index.php). Дальше эта страничка открывается в iframe
Так вот к проблеме: столкнулся с проблемой безопасности. С созданного файла можно редактировать любой файл сайта (.htaccess и другие файлы сайта). Я набросал пару вариантов, как можно ограничить доступ к файлам своего сайта:
Защитить изменение и удаление важных файлов (но тут недостаток: можно редактировать файлы чужого "проекта") Запретить файлам с директории /_projects/{ID}/ обращаться к файлам, которые находятся вне папки {ID} Запретить некоторые функции в PHP Скрыть директории и файлы от функций таких, как scandir, dirname... Проверять PHP файл на наличие запрещённых функций
Но не знаю, как можно осуществить эти варианты. Подскажите, как можно их осуществить или кто-то знает вариант получше? Буду очень признателен. Заранее спасибо.


Ответ

Самым надежным вариантом будет запуск кода внутри контейнера (например, Docker) с настроенным SECCOMP и selinux SELinux. При этом вы можете запускать любой код, а не только PHP.
Код может делать почти всё, что угодно и ограничить его можно как угодно.
Презентация о том как можно обезопасить Docker container: Слайды и Видео

Комментариев нет:

Отправить комментарий