• User

    controllo integrita' jpeg tramite php

    Salve a tutti, vorrei sapere se esiste un modo per poter controllare tramite php se una immagine jpeg (magari uplodata da un utente) sia corrotta o presenti malformazioni nei dati. Ho letto recentemente di alcuni metodi di attacco (sia da lato client che server) che sfruttano proprio immagini jpeg con dati malformati. Anche se il sito e' immune da questo genere di attacchi, mi e' comunque venuta l'idea di implementare in php una strumento per il controllo dell'integrita' delle jpeg...

    ho provato con la funzione presente in gd (createimagefromjpeg) a leggere un paio di jpeg da me danneggiate, ma con sorpresa non ho ricevuto messaggi di errore. Sembra infatti che gd digerisca bene la jpeg corrotte e tenti cmq di interpretarle in qualche maniera.
    Lo stesso avviene con altre funzioni tipo jpeg2wbmp....

    Queste immagini se provo a passarle a djpeg, ricevo giustamente un messaggio di errore, quindi e' gd che processa con non curanza anche immagini rovinate....

    Ho anche provato con la funzione exif_read_data. Putroppo posso capire se la jpeg e' corrotta, solo se e' stata danneggiata nell'header. Vengono infatti ignorati errori presenti nel resto del file.

    Avete qualche idea? Sapere se esiste qualche classe che gestisce le jpeg, svincolandosi da gd o da imagemagick (che non possono/non volgio usare) o dall'uso di exec? Uso spesso il python e per questo linguaggio, ho trovato una serie di classi scritte puramente in python che gestiscono le jpeg svincolandosi dalle PIL...Ovviamente sono poco performanti, ma hanno il vantaggio di essere molto schizzinose e spesso generano errori appena il file e' legeremente esotico (come quelli creati da alcuni telefonini)...
    Mi stupisco quindi che nessuno abbia mai realizzato anche per puro scopo didattico del codice in php che permetta di gestire le jpg senza passare da gd...

    Conoscete qualcosa in merito?
    grazie per ogni aiuto :wink3: