Ejecutando un proceso externo desde la seguridad de Java

0

¿Cuáles son las implicaciones de seguridad de ejecutar procesos externos utilizando Java ProcessBuilder / Process? Por ejemplo:

Runtime rt = Runtime.getRuntime();
Process proc = rt.exec("processExecutable");
InputStream is = proc.getInputStream();
int c;
while ((c = is.read()) != -1) {
  System.out.print((char) c);
}
int exitVal = proc.waitFor();

Por lo que entendí, la comunicación entre Java y los procesos externos se realiza a través de canalizaciones, por lo que me interesa lo difícil que es para alguien escuchar y obtener datos enviados de un proceso a Java en Unix. ¿Solo los usuarios registrados en la misma máquina tendrán la posibilidad de escuchar a escondidas? ¿Algún usuario registrado tendrá los administradores o usuarios potenciales o únicos en el mismo grupo, etc. que el usuario que ejecuta la aplicación Java que ejecutó el proceso externo?

    
pregunta Miles 03.06.2014 - 17:25
fuente

1 respuesta

1

Se puede acceder a las tuberías a través de / proc // fd /. Esto significa que bajo una configuración predeterminada, solo la raíz y el propietario del proceso pueden abrirlos. Por lo tanto, puede considerar que la tubería es tan segura como el sistema de archivos local.

    
respondido por el jbms 03.06.2014 - 18:30
fuente

Lea otras preguntas en las etiquetas