
Supongamos que, en el momento (1), creo una canalización con nombre usando Python con el objetivo de que eventualmente este proceso de Python escriba algo en esa canalización con nombre. ¿Por qué? Porque, en el momento (2), hay otro proceso que se espera que lea desde esa canalización con nombre.
Entonces, básicamente, es IPC a través de canalizaciones con nombre. ¿Por qué es esto genial? Debido a que parece un archivo, se puede comunicar con el otro proceso que solo puede leer archivos a través de este mecanismo de canalización con nombre como un IPC conveniente sin necesidad de reescribir el otro proceso.
Pero hay un problema:Supongamos que entre el tiempo (1) y el tiempo (2), un proceso maligno comenzó a leer desde la tubería nombrada primero antes que el proceso previsto. De esta manera, mi secuencia de comandos Python puede terminar enviando datos a un proceso no deseado. Por lo tanto, no me preocupa si el secuestrador comienza a escribir en el proceso en mi modelo de riesgo específico (solo me preocupa la lectura del secuestro desde la tubería antes del proceso previsto).
Pregunta:¿Existe algún mecanismo para garantizar que ningún otro proceso excepto el previsto lea del IPC un proceso distinto del previsto?
Respuesta1
Las canalizaciones con nombre tienen permisos de archivo como cualquier otro archivo. Asegúrese de que cuando cree la canalización, los permisos estén configurados de manera que solo la cuenta destinada a ejecutar su proceso pueda leer en ella.