| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/05/2007 12:33:05
|
kicolobo
Moderador
![[Avatar]](/images/avatar/445b6949ed8860ca6175e8c89464ba85.jpg)
Membro desde: 19/07/2006 14:11:09
Mensagens: 1188
Localização: Belo Horizonte
Offline
|
Olá,
estou com a seguinte dúvida: temos um sistema no qual o usuario faz o upload de alguns arquivos de imagem (que podem ser de diversos formatos).
A maneira mais ingênua de saber se trata-se realmente de um arquivo de imagem consiste em verificar sua extensão. No entanto, nada impede que um usuario mal intencionado pegue por exemplo um arquivo executável, mude sua extensão e faça o upload do arquivo para o sistema.
Sendo assim, pergunto: há alguma maneira segura de se verificar se o conteudo do arquivo realmente é uma imagem, e não um arquivo de outro formato? Em caso afirmativo, como devemos proceder?
|
http://devkico.itexto.com.br
Twitter: http://www.twitter.com/loboweissmann
Vamos aprender Grails?
http://www.grailsbrasil.com.br |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/05/2007 12:48:21
|
maquiavelbona
JWizard
![[Avatar]](/images/avatar/24bea84d52e6a1f8025e313c2ffff50a.jpg)
Membro desde: 29/06/2006 09:06:51
Mensagens: 2447
Localização: São Paulo - SP
Offline
|
Google search: read image metadata java
http://johnbokma.com/java/obtaining-image-metadata.html
http://www.drewnoakes.com/code/exif/
http://schmidt.devlib.org/ffident/index.html
http://schmidt.devlib.org/image-info/
http://schmidt.devlib.org/java/pixel-image-io-libraries.html
http://java.sun.com/javase/6/docs/api/javax/imageio/ImageReader.html
http://www.shareit.com/product.html?productid=300033944
e mais aproximadamente 963.000 resultados.
Até!
|
----------------------------------------------------------------
"Within a few years a simple and inexpensive device, readily carried about, will enable one to receive on land or sea the principal news, to hear a speech, a lecture, a song or play of a musical instrument, conveyed from any other region of the globe. "
Nikola Tesla - A means for furthering Peace (1905)
"Gedanken ohne Inhalt sind leer, Anschauungen ohne Begriffe sind blind."
Immanuel Kant - Kritik der reinen Vernunft (1781) |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/05/2007 13:48:59
|
ViniGodoy
Moderador
![[Avatar]](/images/avatar/1921493b5362e63fbe8983f4bd54157d.png)
Membro desde: 11/12/2006 08:22:01
Mensagens: 20580
Localização: Curitiba/PR
Offline
|
Nunca testei, mas creio que dê para vocêtentar carregar a imagem, com o ImageIO read, e esperar por uma exceção caso o arquivo seja inválido...
|
@ViniGodoy - Lattes
Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!
Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).
Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/05/2007 13:53:32
|
maquiavelbona
JWizard
![[Avatar]](/images/avatar/24bea84d52e6a1f8025e313c2ffff50a.jpg)
Membro desde: 29/06/2006 09:06:51
Mensagens: 2447
Localização: São Paulo - SP
Offline
|
Um outro formato que pode dar problema, é o SVG. Se for ter que aceitar todo e qualquer tipo de imagem, creio que você terá bastante trabalho para filtrar o que é útil ou não.
Até!
|
----------------------------------------------------------------
"Within a few years a simple and inexpensive device, readily carried about, will enable one to receive on land or sea the principal news, to hear a speech, a lecture, a song or play of a musical instrument, conveyed from any other region of the globe. "
Nikola Tesla - A means for furthering Peace (1905)
"Gedanken ohne Inhalt sind leer, Anschauungen ohne Begriffe sind blind."
Immanuel Kant - Kritik der reinen Vernunft (1781) |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/05/2007 14:30:40
|
kicolobo
Moderador
![[Avatar]](/images/avatar/445b6949ed8860ca6175e8c89464ba85.jpg)
Membro desde: 19/07/2006 14:11:09
Mensagens: 1188
Localização: Belo Horizonte
Offline
|
no meu caso são apenas os formatos de imagem que normalmente são utilizados em aplicações web.
Valeu pela ajuda gente!
|
http://devkico.itexto.com.br
Twitter: http://www.twitter.com/loboweissmann
Vamos aprender Grails?
http://www.grailsbrasil.com.br |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/05/2007 14:47:50
|
maquiavelbona
JWizard
![[Avatar]](/images/avatar/24bea84d52e6a1f8025e313c2ffff50a.jpg)
Membro desde: 29/06/2006 09:06:51
Mensagens: 2447
Localização: São Paulo - SP
Offline
|
kicolobo wrote:no meu caso são apenas os formatos de imagem que normalmente são utilizados em aplicações web.
...
Só uma curiosidade, que formatos são esses?
Já vi colocarem:
-Jpeg e derivados;
-Gif;
-Png;
-Svg;
-Tiff;
-Bmp;
-Pcx;
-Raw;
-Ps;
Não é um número pequeno. Se for só o trio do mal(PNG/JPEG/GIF) não vais ter muito problema.
Até!
|
----------------------------------------------------------------
"Within a few years a simple and inexpensive device, readily carried about, will enable one to receive on land or sea the principal news, to hear a speech, a lecture, a song or play of a musical instrument, conveyed from any other region of the globe. "
Nikola Tesla - A means for furthering Peace (1905)
"Gedanken ohne Inhalt sind leer, Anschauungen ohne Begriffe sind blind."
Immanuel Kant - Kritik der reinen Vernunft (1781) |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/05/2007 22:53:17
|
eclipso
JavaEvangelist
Membro desde: 07/12/2006 12:57:04
Mensagens: 446
Offline
|
É, se fosse implementar sem ajuda de API...Teria que ler a imagem e comparar seu cabeçalho com o padrão de cada formato que você espera receber...E isso é meio sacal
Na real é isso que a API faz, e qdo ela lê um arquivo cujo cabeçalho não corresponde ao formato esperado, ela joga uma exceção...
|
CV: http://lattes.cnpq.br/0044387433155250 |
|
|
 |
|
|