Estoy intentando permitir que un subproceso con espacio de arena con Pypy se comunique, utilizando un protocolo limitado, con el proceso principal.Uso del módulo de socket en el espacio aislado Pypy
Después de revisar el código fuente del pypy/pypy/translator/sandbox/sandlib.py
incluido con Pypy, parece que hay un VirtualizedSocketProc
que permite llamadas os.open
para abrir sockets. Cambié algunas funciones del código (por ejemplo, permitiendo conexiones TCP en puertos limitados), pero se ha cambiado muy poco. Sin embargo, no puedo importar el módulo socket
de Pypy porque requiere un módulo _socket
inexistente, que parece estar ubicado en las partes del código del intérprete.
¿Es lo que intento hacer factible? Si es así, ¿cómo importo el módulo de socket? Si no, ¿qué más puedo hacer?
¿Puede explicar con más detalle por qué está tratando de abrir el zócalo fuera del entorno "protegido"? (No a juzgar, he hecho cosas similares en numerosas ocasiones, y hay algunos enfoques que quizás no hayas considerado). Sería más fácil responder la pregunta con más detalle. – synthesizerpatel
Estoy intentando permitir que el proceso de espacio aislado se comunique con el proceso principal. Abrir una toma parecía una buena idea; Tengo controles para restringir el número de puerto, el host, etc. y los sockets parecían una manera fácil de comunicar los dos procesos. – nickname
Específicamente, deseo ofrecer acceso restringido a algunas funciones disponibles fuera del entorno limitado. – nickname