Создание приложения для безопасного тестирования кода на PHP - PullRequest
1 голос
/ 22 февраля 2011

Я делаю приложение для тестирования веб-кода на PHP, которое может напрямую выполнять PHP и MySql-коды. Это дает пользователям возможность сразу же проверить свои веб-коды на моем сайте. Однако я полагаю, что такой код приносит много (возможных) проблем безопасности, поскольку он просто выполняет любой код, написанный пользователем в текстовом поле. Поэтому мне было интересно: как сделать такой тестер кода безопасным? До сих пор я делал preg_matching всех «опасных» функций PHP из пользовательского входного кода (например, функции CHMOD), но я не уверен, реально ли это сделать для всех возможных вредных функций в PHP.

Любые предложения о том, как сделать мой сценарий безопасным?

Спасибо заранее, Skyfe.

1 Ответ

2 голосов
/ 22 февраля 2011

У меня нет на самом деле "ответа" для вас, но, надеюсь, могу предложить какой-то совет и несколько вещей, о которых стоит подумать ...

Это не похоже на легкую задачу.И подход, который вы так далеко удаляете от «опасного» кода, это определенно не очень хорошая идея. много совпадений между "кодом, который можно сделать опасным" и "стандартным кодом, который ваши пользователи захотят использовать".

Похоже, эта задача будет выполнятьсянамного глубже, чем просто сам код.Процесс на сервере, который выполняет код, должен быть изолированным, сам сервер должен быть изолированным и т. Д. Некоторые вопросы, которые следует задать себе:

  • Какая учетная запись пользователя используется на сервере при выполнении этогокод?
  • Какие разрешения имеет эта учетная запись?Может ли это повлиять на что-нибудь еще на сервере?
  • Что этот сервер может делать в сети?Доверяет ли остальная часть сети что-либо, исходящее с этого сервера?
  • и т. Д.

Например, выполняется ли код PHP, скажем, в том же пользовательском контексте, что и ваш вебсервер?Апач, например?Если это так, то пользовательский код может потенциально использоваться для перенастройки вашего веб-сервера, открывая его для большего количества уязвимостей.Работает ли он с правами root или имеет доверенный доступ ко всему, что работает с правами root?

Последствия для безопасности выполнения кода, представленного пользователем на вашем сервере, выходят далеко за рамки только веб-приложения, принимающего код.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...