Je veux exécuter un script php à partir de php qui utilisera différentes constantes et différentes versions de classes déjà définies.Existe-t-il un moyen d'exécuter du code php dans un sandbox à partir de php?
Yat-il un php_module bac à sable où je pouvais:
sandbox('script.php'); // run in a new php environment
au lieu de
include('script.php'); // run in the same environment
Ou est proc_open() la seule option? PS: Le script n'est pas accessible via le Web, donc fopen ('http://host/script.php') n'est pas une option.
À propos de runkit; il ne semble pas bien bac à sable par description, ou je devrais peut-être dire facile. Vous pouvez interdire des fonctions, mais je voudrais plutôt interdire TOUS sauf ceux dans une liste fournie. Si un utilisateur a besoin d'une fonction, je peux évaluer sa sécurité à la main sur demande. Il semble que le seul moyen est d'écrire un interpréteur personnalisé. Si la vitesse est un problème, vous pouvez le faire convertir son AST en PHP ou dans une autre langue, c'est en fait ce que je vais faire maintenant que je ne pouvais pas trouver une solution prête. À la votre! Ps. Oui, j'ai vu que ce Q est vieux. Ds. – Frank
Eh bien .. Bonne chance de trouver quelque chose qui peut analyser PHP dans un AST;) Je suis d'accord avec votre point cependant. – troelskn
FYI runkit semble être abandonné et vous aurez probablement envie de compiler soit la version CVS ou l'une des versions corrigées (http://github.com/tricky/runkit) si vous voulez l'exécuter sur une version moderne de PHP – Eli