2008-10-10 11 views
7

¿Por qué se consideran peligrosas las tuberías? ¿Qué se puede hacer para evitar estos problemas de seguridad?¿Por qué se consideran peligrosos los tubos en Windows/Unix/Linux?

Estoy interesado principalmente en Windows, pero si tiene otra información del sistema operativo, proporcione.

+0

¿Es OS neutral? – shodanex

+0

El título y el contenido de la pregunta contradicen la información del sistema operativo que desea, corrija según corresponda. – sundar

Respuesta

16

(asumiendo que usted está hablando de tuberías Unix nombre de la mención de 'c' y 'IPC'. Tubos de Windows nombre funcionen de manera algo diferente)

Cualquier persona con permisos puede escribir en una tubería con nombre, por lo que tiene tener cuidado con los permisos y el bloqueo (ver flock()). Si una aplicación confía en la entrada que está obteniendo de la tubería con nombre (que normalmente será el caso a menos que usted genere validación de entrada explícitamente en ella), entonces un usuario malintencionado puede escribir cualquier dato deseado en la canalización con nombre si tiene permiso.

Además, cualquier usuario con permisos puede leer de la tubería e interceptar los datos que salen de ella si no la ha bloqueado exclusivamente. Los datos no se encuentran en la secuencia de entrada que espera el lector.

+9

¿Pero esto no se reduce a "las personas con permiso pueden hacer cosas malas", lo cual es cierto con todas las características del sistema operativo? –

+1

Eso es cierto, pero creo que el caso de falla más obvio es tener múltiples procesos ejecutándose bajo el mismo usuario. Todos tendrán los mismos permisos y acceso a la tubería, por lo que debe administrar ese acceso para evitar condiciones de carrera. p.ej. Los sockets TCP, por el contrario, son proceso a proceso. –

+2

La razón principal (y esta manzana para Windows también denominadas tuberías en cierta medida) es que las tuberías viven en un espacio de nombres público, mientras que las conexiones son privadas una vez que se establece una conexión (suponiendo que la secuencia TCP no se secuestra). – ConcernedOfTunbridgeWells

Cuestiones relacionadas