docx magic bytes

Sziasztok,

Egy feltöltött file típusat ellenőrzöm PHP-ból.
A PHP-ban a finfo hívás és a shell-ben a file parancs is zip-ként azonosítja a docx fileokat, nyílván mert valóban az is. Az mime.types tartalmazza a docx-et, de magic adatbazisban nem látom.

$ file -k test.docx
test.docx: Zip archive data, at least v2.0 to extract

Magic alapján el lehet dönteni, hogy egy file docx-e vagy ki kell hozzá csomagolni és bele kell kukkantani, hogy biztosra menjek? Ti hogyan ellenőrzitek a feltöltött fileokat?

Hozzászólások

Én először kiterjesztés alapján kategorizálnék, s ha bizonytalan, csak akkor file. Esetleg a kettőt párhuzamosan.

--
"SzAM-7 -es, tudjátok amivel a Mirage-okat szokták lelőni" - Robi.

Magic alapján el lehet dönteni, hogy egy file docx-e vagy ki kell hozzá csomagolni és bele kell kukkantani, hogy biztosra menjek? Ti hogyan ellenőrzitek a feltöltött fileokat?
ha kizippeled, akkor mit mond a `file`?


Microsoft Office Open XML Format (OOXML) Document
NOTE: There is no subheader for MS OOXML files as there is with
DOC, PPT, and XLS files. To better understand the format of these files,
rename any OOXML file to have a .ZIP extension and then unZIP the file;
look at the resultant file named [Content_Types].xml to see the content
types. In particular, look for the <Override PartName= tag, where you
will find word, ppt, or xl, respectively.

ez elég világosan mondja, hogy nincs ...explicit, azért én sejtem h nem garantáltan, de a kötött könyvtárszerkezet miatt csak vannak magic bájtjai.

~~~~~~~~
http://www.youtube.com/watch?v=VbUVqODL1nE

Most néztem Slackware 13.37 alatt:


# file honlap.docx
honlap.docx: Zip archive data, at least v2.0 to extract

# file -z honlap.docx
honlap.docx: XML document text (Zip archive data, at least v2.0 to extract)

# file -v
file-5.05
magic file from /etc/file/magic

--
A főnököm mindig megtartja amit ígér, ha pénzt ígér azt is!