Ho lavorato su un sistema di automazione domestica ora per poco più di un anno e ho aggiunto un sistema di plugin ad esso. Ho anche aggiunto così altri utenti possono inviare i loro plugin e se li accetto, vengono automaticamente aggiunti a tutti i miei sistemi collegati a Internet. Ora non c'è niente di sbagliato con il sistema di plugin stesso, ma sono molto preoccupato per quanto riguarda la sicurezza.
Voglio comunque che il sistema di plugin sia in grado di eseguire il normale codice PHP e fare ciò che il plugin doveva fare, ma non voglio codice come ad esempio:
echo file_get_contents("../inc/db.php");
per funzionare. Voglio che il plug-in sandbox sia in grado di funzionare come un normale plug-in e sia comunque limitato a non toccare o leggere nessuno dei file su cui è in esecuzione il sistema.
Il motivo per cui mi chiedo è perché voglio che l'utente collauda il suo plugin prima di sottoporlo ovviamente ma ho paura che se lascio che l'utente esegua il codice PHP da solo, potrebbe compromettere il sistema.
È possibile risolvere questo in qualche modo? Se aiuta il plugin è in esecuzione in una cartella diversa rispetto al resto dei file.
Anche
È possibile limitare in modo che il plugin non possa eseguire determinate funzioni come shell_exec, exec, passthru, system senza disabilitarlo completamente in php.ini?