Skip to content

Skip validation if heif#202

Open
werner wants to merge 10 commits intomasterfrom
skip_validation_if_heif
Open

Skip validation if heif#202
werner wants to merge 10 commits intomasterfrom
skip_validation_if_heif

Conversation

@werner
Copy link
Contributor

@werner werner commented Nov 15, 2019

Este es otra idea para evitar problemas con los archivos heif.

La idea básica era ignorar validaciones, sin embargo, Paperclip tiene una opción llamada content_type_mappings, esto permite agregar un content type no incluido en Paperclip para que pueda detectarlo y no arrojar error.

fixes: bitex-la/storyboard#620

mdallago
mdallago previously approved these changes Nov 15, 2019
@nubis
Copy link
Contributor

nubis commented Nov 26, 2019

@mdallago @werner este estaría conflictuado todavía.

@nubis
Copy link
Contributor

nubis commented Nov 26, 2019

@werner veo que falló el build, parece ser relevante

@werner
Copy link
Contributor Author

werner commented Nov 26, 2019

@nubis si, estoy en eso, lo que me parece extraño es que no puedo reproducirlo localmente, es como si circleci no me acepta el content_type_mappings del initializer de Paperclip.

@nubis
Copy link
Contributor

nubis commented Nov 26, 2019

Será porque internamente Paperclip usa el comando 'file' del sistema para identificar, o alguna cuestión similar con algún comando local del sistema operativo.
Recomiendo que hagas un nuevo build en circleci con ssh activado hagas las pruebas al caso en un rails console ahí adentro. Podés correr ese spec en circle, a mano, con debugger, como si fuera tu máquina local, y averiguar por donde viene el tema.

@mdallago
Copy link
Contributor

la vuelvo a poner in progress hasta que este pasando en circleci

@werner
Copy link
Contributor Author

werner commented Nov 27, 2019

El tema es el siguiente:
Fallaba en circleci por que hace falta una librería: libheif. Se puede instalar desde los repositorios con:
sudo add-apt-repository ppa:strukturag/libheif
sudo apt install libheif-examples

El problema es que circleci tiene una versión de Ubuntu muy vieja, si los servidores de compliance tienen al menos 16.04 (LTS), se puede instalar sin problemas, si no, el comando que usa Paperclip para detectar el mime type fallará y esta implementación no servirá.

@mdallago
Copy link
Contributor

la verdad que no gusta mucho la idea de instalar cosas extras... no hay manera de decirle a paperclip que si viene ese mimetype, lo deje pasar sin validar nada ?

@werner
Copy link
Contributor Author

werner commented Nov 29, 2019

Bueno, eso no crearía un tema de seguridad? me imagino que esa validación existe para verificar que el mime type que se envía sea el correcto, tal vez al ignorarlo alguien pudiera enviar un troyano en formato heif/heic.

@mdallago
Copy link
Contributor

mdallago commented Dec 2, 2019

Si, podria ser un tema de seguridad..pero al margen de eso..es posible hacerlo ?

@werner
Copy link
Contributor Author

werner commented Dec 2, 2019

Creo que si, un monkey patch a la clase MediaTypeSpoofDetector cuando viene un archivo heic/heif y listo, el punto sería, ¿es eso realmente lo que queremos?

@nubis
Copy link
Contributor

nubis commented Dec 3, 2019

+1 a tener el spoof detection funcionando, tengamos en cuenta que estos archivos los descargan en mac a veces, y ahí hay un mundo distinto de vulnerabilidades y de mime type detection.

Se pueden instalar las librerias del sistema operativo que hagan falta, las agregamos a los scripts de setup de nuevas instancias también.

En los ubuntu 18.04 hay que instalar algo? ya está en los repos oficiales en 18.04 la librería HEIF?

Ya le pongo un tag al issue para que no se nos pase de instalar esa librería antes de hacer deploy.

@werner
Copy link
Contributor Author

werner commented Dec 3, 2019

En 18.04 funciona perfecto, el problema era que en circle la versión de Ubuntu era la 14.04 y el paquete libheif-examples no existe en el repositorio principal, por eso pincha en circleci y es un lio instalarlo desde fuentes.

En 18.04 el paquete está en los repositorios principales.

@mdallago
Copy link
Contributor

mdallago commented Dec 3, 2019

voy a agregar una issue nueva para actualizar circle ci a ubuntu 18.04. luego retomamos esta issue

@mdallago
Copy link
Contributor

mdallago commented Dec 3, 2019

Di de alta la issue https://github.com/bitex-la/storyboard/issues/683 para actualizar circle ci

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants