Как Mac OS X может сохранить детали о URL, с которого был загружен файл?

WRT эта тема, Что я должен сделать о com.apple.quarantine?, я хочу знать, как OS X может изучить и сохранить их информация в поле. Я не ищу способ отключить эту опцию, но для кода (или псевдокода, идеи, безотносительно) относительно реализации этой вещи.Заранее спасибо.

8
задан 20.03.2017, 12:17

4 ответа

Как Daniel упомянул, браузер может сохранить исходный URL (и также ссылающийся домен) загруженного файла в расширенном атрибуте com.apple.metadata:kMDItemWhereFroms.

Первая Apple добавила это к Safari для Mac OS X 10.4, затем она была добавлена к Chrome/хрому [Выпуск 22289], и существует выдающийся запрос улучшения для добавления его к Firefox [Ошибка 337051].

Что касается фактического кода для реализации этого проверьте патч Хрома.

6
ответ дан 07.12.2019, 13:49

После загрузки любого файла, выполнения xattr file покажет Вам, что браузер сохранил в расширенных атрибутах:

xattr mydownload.gz
com.apple.metadata:kMDItemWhereFroms
com.apple.quarantine

Затем, больше деталей:

xattr -p com.apple.quarantine mydownload.gz 
0000;4cee9d4b;Safari;24064D6B-9854-46BC-AF73-5DE5F8042D0B|com.apple.Safari

xattr -p com.apple.metadata:kMDItemWhereFroms mydownload.gz 
62 70 6C 69 73 74 30 30 A1 01 5F 10 24 68 74 74
70 3A 2F 2F 73 75 [and so on]

... или, в читаемом формате:

mdls -name kMDItemWhereFroms mydownload.gz
kMDItemWhereFroms = (
    "http://some-url"
)

Можно установить их (или любой атрибут, который Вы хотите), сами также:

xattr -w some-name some-value mydownload.gz

Следующие работы также, даже при том, что, имеют различные результаты при выполнении вышеупомянутых команд снова:

xattr -w com.apple.metadata:kMDItemWhereFroms http://example.com mydownload.gz

И для com.apple.quarantine атрибут, согласно понимают:

Как правило, Карантинные данные состоят из ряда 4 разграниченных точкой с запятой значений (ряд десятичных цифр неизвестной цели - обычно 0000, 8 символьных непрозрачных идентификаторов, название приложения, которое создало Изолированный файл и UTI приложения (Универсальный Идентификатор типа) снабженный префиксом символ вертикальной черты),

Например, для двух различных файлов, загруженных с помощью Mozilla Firefox, это похоже:

com.apple.quarantine: 0000;4b392bb2;Firefox;|org.mozilla.firefox
com.apple.quarantine: 0000;4b38d820;Firefox;|org.mozilla.firefox

Используя Действия Папки Automator Вы могли выполнить такие команды для новых файлов в определенной папке, если это что Вы после.

5
ответ дан 07.12.2019, 13:49

Та информация хранится в том, что называют "расширенными атрибутами". У John Siracusa есть превосходная статья, обсуждая расширенные атрибуты, когда они были сначала представлены в OS X 10.4: http://arstechnica.com/apple/reviews/2005/04/macosx-10-4.ars/7.

Кажется, что больше нет страницы справочника для 'xattr' инструмента командной строки, но 'xattr-h' должен показать основную справку.

API POSIX/BSD-level доступен в/usr/include/sys/xattr.h, который определяет функции C, такие как getxattr (), setxattr (), removexattr (), listxattr (), и их ОСНОВАННЫЕ НА ФАЙЛЕ кузены. (Эти команды, в отличие от этого, 'xattr (1)', действительно имеют страницы справочника).

4
ответ дан 07.12.2019, 13:49

Это установлено приложением, загружающим файл. Никакое волшебное обнаружение загрузки, просто атрибут установлен на загруженном файле приложением загрузки.

Я просто загрузил использование zip-файла wget, Google Chrome, Firefox и Safari, и, как ожидалось, wget загрузка не имеет никаких расширенных атрибутов, загрузки браузера имеют, поскольку они знают о той функции. Интересно, карантин набора загрузки Firefox, но забыл устанавливать com.apple.metadata:kMDItemWhereFroms, информация, где загруженный файл был первоначально расположен (его URL). Safari и набор Chrome оба, wget ни один.

3
ответ дан 07.12.2019, 13:49

Теги

Похожие вопросы