? Quiero ejecutar un php-script desde php que usará diferentes constantes y diferentes versiones de clases que ya están definidas.¿Hay alguna forma de ejecutar el código php en un sandbox desde dentro de php
¿Existe una caja de arena php_module donde podría simplemente:
sandbox('script.php'); // run in a new php environment
en lugar de
include('script.php'); // run in the same environment
O es proc_open() la única opción?
PD: no se puede acceder al script a través de la web, por lo que fopen ('http://host/script.php') no es una opción.
Acerca de runkit; no parece una caja de arena bien por descripción, o tal vez debería decir fácil. Puede prohibir las funciones, pero me gustaría prohibir TODAS menos las incluidas en una lista proporcionada. Si un usuario necesita una función, puedo evaluar su seguridad a mano, previa solicitud. Parece que la única forma es escribir un intérprete personalizado. Si la velocidad es un problema, puede hacer que convierta su AST en PHP u otro idioma, esto es lo que voy a hacer ahora, ya que no pude encontrar una solución lista. ¡Salud! Ps. Sí, vi que esta Q es vieja. Ds. – Frank
Bueno ... Buena suerte para encontrar algo que pueda analizar PHP en AST;) Estoy de acuerdo con tu punto. – troelskn
FYI runkit parece estar abandonado y es probable que desee compilar la versión CVS o una de las versiones parcheadas (http://github.com/tricky/runkit) si desea ejecutarla en una versión moderna de PHP – Eli