Skip to content

Skip validation if heif - #202

Open
werner wants to merge 10 commits into
masterfrom
skip_validation_if_heif
Open

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

Conversation

@werner

@werner werner commented Nov 15, 2019

Copy link
Copy Markdown
Contributor

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

nubis commented Nov 26, 2019

Copy link
Copy Markdown
Contributor

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

Comment thread config/initializers/paperclip.rb
@nubis

nubis commented Nov 26, 2019

Copy link
Copy Markdown
Contributor

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

@werner

werner commented Nov 26, 2019

Copy link
Copy Markdown
Contributor Author

@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

nubis commented Nov 26, 2019

Copy link
Copy Markdown
Contributor

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
Copy Markdown
Contributor

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

@werner

werner commented Nov 27, 2019

Copy link
Copy Markdown
Contributor Author

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
Copy Markdown
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

werner commented Nov 29, 2019

Copy link
Copy Markdown
Contributor Author

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

mdallago commented Dec 2, 2019

Copy link
Copy Markdown
Contributor

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

@werner

werner commented Dec 2, 2019

Copy link
Copy Markdown
Contributor Author

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

nubis commented Dec 3, 2019

Copy link
Copy Markdown
Contributor

+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

werner commented Dec 3, 2019

Copy link
Copy Markdown
Contributor Author

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

mdallago commented Dec 3, 2019

Copy link
Copy Markdown
Contributor

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

@mdallago

mdallago commented Dec 3, 2019

Copy link
Copy Markdown
Contributor

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