Cuidado con open-uri

Es muy común que usemos open-uri si queremos descargar un fichero remoto, pero si lo usas para descargar un fichero que introduce un usuario puede que tengas un agujero de seguridad.

open-uri usa por debajo Kernel#open el cual puede ejecutar código malicioso.

Por ejemplo para Kernel#open esto | ls sería una url válida al igual que | rm -rf ~.

Puedes probarlo con un comando no dañino:

open("| ls -lah").read

Janko Marohnić lo explica con más detalle en su blog y nos propone su gema down.


Comentarios