Bug #74573 [Nab]: finfo_file apk
Edit report at https://bugs.php.net/bug.php?id=74573&edit=1
ID: 74573
Updated by: requinix@php.net
Reported by: 209721949 at qq dot com
Summary: finfo_file apk
Status: Not a bug
Type: Bug
Package: *General Issues
Operating System: mac
PHP Version: 7.1.4
Block user comment: N
Private report: N
New Comment:
.docx is only recognized (with what I've tested with) if the ZIP is packaged with the
[Content_Types].xml as the first entry. Reorganizing the archive turns it into a regular "Zip
archive", even though it's still a valid .docx file.
.apk can apparently be recognized as a Jar file but that's as far as it goes.
> can it be implemented in the future?
Only if standard magic databases are able to identify it, and currently it does not appear that they
can.
Just because there is a MIME identifier for a file does not mean it can be reliably identified from
the file's data. Which is what this all does, if you weren't aware.
And @spam2: stop using this bug report as your soapbox.
Previous Comments:
------------------------------------------------------------------------
[2017-05-11 16:14:35] spam2 at rhsoft dot net
> can it be implemented in the future
as you can see in my tests the reason is PHP before 7.2 is using a libmagic from the last decade and
so test it with a recent operating system and "/usr/bin/file -b --mime-type <file>"
- if it's correct chances are good that with 7.2 it will be fine or ask enough people to make
pressure backporting the stuff below so people using a distribution package have the slightest
chance to see that improved before 2020
[2016-11-25 00:01 UTC] ab@php.net
This is fixed in 7.2 with the libmagic upgrade https://github.com/php/php-src/commit/52f5b9659fa27936d8271c4d7a6874269fbf9534
. A packport into lower branches might be tricky, as libmagic 5.29 has quite some incompatibilities
to the current version - in the data format as well as in the actual code. It could be possible as a
complete upgrade in lower branches, but would mean yet more patching, however the new libmagic needs
to be ensured stable in 7.2 first.
------------------------------------------------------------------------
[2017-05-11 16:07:41] 209721949 at qq dot com
since .apk file has it's own mime type, i think it's better to get the right mime type
directly and correct, just like other types of file, can it be implemented in the future ï¼
------------------------------------------------------------------------
[2017-05-11 15:48:52] spam2 at rhsoft dot net
> requinix@php.net: .apk files are ZIP archives
yeah, openoffice documents are ZIP files too *but* they are recognized because it's the
underlying libmagic - *maybe* for that case it's true and a recent libmagic would have the same
result
but be careful to classify that as "not a bug"
with current head from https://github.com/zendtech/php-src /just beause also
test the experimental JIT at the same time
a) "php ext/fileinfo/create_data_file.php" against a Fedora 25 libmagic works
b) the sample from https://bugs.php.net/bug.php?id=67516 is correctly
detected as image/gif and no longer application/octet-stream
c) it is proven that fileinfo in PHP is broken by deign for years
------------------------------------------------------------------------
[2017-05-11 15:36:21] spam2 at rhsoft dot net
just tested it again with PHP 7.1.5
"/usr/bin/php ext/fileinfo/create_data_file.php /usr/share/misc/magic.mgc >
ext/fileinfo/data_file.c" *only seems* to work
happily i included a large testsuite in our pgo-build and stop rpmbuild when it fails, no need for
complete gcc-profiling and second buildstage when the result is a broken PHP, see below
________________________________________________________
frankly as i reported the bug i waited at least 2 years in the hope fileinfo get any updates,
nothing.... so we have for at least 4 years a known image/gif detected as application/octet-stream
which makes any verification of useruploads pointless when you need to allow
"application/octet-stream"
you case with "zip" is harmless, at least you can distinct it form a random executable :-)
[harry@srv-rhsoft:/data/lounge-daten/php-mimtype-bug]$ php mime.php
/mnt/data/lounge-daten/php-mimtype-bug/1.gif
/usr/bin/file -b --mime-type
image/gif
finfo_file(filename, FILEINFO_MIME_TYPE)
application/octet-stream
________________________________________________________
FAILED: NOT ALL TESTS PASSED
[11-May-2017 17:31:22 Europe/Vienna] PHP Warning: finfo_open(): Failed to load magic database at
'(null)'. in /Volumes/dune/www-servers/cms/cms/autotests/api_captcha.php on line 39
[11-May-2017 17:31:22 Europe/Vienna] CMS-AUTOTEST: cl_api->captcha->test() failed - TypeError:
finfo_file() expects parameter 1 to be resource, boolean given in
/Volumes/dune/www-servers/cms/cms/autotests/api_captcha.php:40
Stack trace:
#0 /Volumes/dune/www-servers/cms/cms/autotests/api_captcha.php(40): finfo_file(false,
'/Volumes/dune/w...', 16)
#1 /Volumes/dune/www-servers/cms/cms/api_captcha.php(117): require('/Volumes/dune/w...')
#2 /Volumes/dune/www-servers/cms/cms/autotest.php(457): cl_captcha->test()
#3 {main}
[11-May-2017 17:31:25 Europe/Vienna] PHP Warning: finfo_open(): Failed to load magic database at
'(null)'. in /Volumes/dune/www-servers/phpincludes/global_rh_misc.inc.php on line 3407
[11-May-2017 17:31:25 Europe/Vienna] PHP Warning: finfo_open(): Failed to load magic database at
'(null)'. in /Volumes/dune/www-servers/phpincludes/global_rh_misc.inc.php on line 3407
[11-May-2017 17:31:25 Europe/Vienna] PHP Warning: finfo_open(): Failed to load magic database at
'(null)'. in /Volumes/dune/www-servers/phpincludes/global_rh_misc.inc.php on line 3407
------------------------------------------------------------------------
[2017-05-11 15:31:29] requinix@php.net
.apk files are ZIP archives. Without looking at the extension or the actual contents of the archive
it's impossible to tell the difference between the two.
MIME detection is not perfect. Sometimes you need to check the extension too.
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
https://bugs.php.net/bug.php?id=74573
--
Edit this bug report at https://bugs.php.net/bug.php?id=74573&edit=1
Thread (10 messages)