mirror of
https://codeberg.org/postscriptum/gemlog.git
synced 2026-02-18 22:12:40 +00:00
151 lines
No EOL
6.4 KiB
Text
151 lines
No EOL
6.4 KiB
Text
# mat2: очищення мета-даних для різних форматів
|
||
|
||
В мене давно назбиралась колекція дампів різних сторінок, які я зберігаю в PDF для бекапів, локального перегляду (оскільки такий формат складається з одного файлу) а також планую поділитися ними з іншими, опублікувавши десь на хмарі FTP:
|
||
|
||
=> setup-anonymous-ftp-server.gmi Організація гостьового сервера FTP
|
||
=> social-oriented-vsftpd-server-setup.gmi Організація багатокористувацького файло-обмінника на базі FTP / vsftpd
|
||
|
||
Як і більшість тодішніх соціально-орієнтованих форматів, от як зображення JPEG з EXIF-інформацією про GPS розташування зокрема, PDF - не є "безпечним" виключенням, оскільки може містити в собі як віддалений вміст, вбудований скриптинг так і "відбитки пальців" (fingerprint): версію рушія, дату створення документу, тощо.
|
||
|
||
Згодом, зайнявся сабжем і першою знайшов утиліту mat2, яка написана мовою Python і розроблялась у якості частини проєкту Tails.
|
||
|
||
### Підтримувані формати
|
||
|
||
На момент публікації, версія 0.14 підтримує наступні формати:
|
||
|
||
* application/epub+zip (.epub)
|
||
* application/pdf (.pdf)
|
||
* application/vnd.oasis.opendocument.chart (.odc)
|
||
* application/vnd.oasis.opendocument.formula (.odf)
|
||
* application/vnd.oasis.opendocument.graphics (.odg)
|
||
* application/vnd.oasis.opendocument.image (.odi)
|
||
* application/vnd.oasis.opendocument.presentation (.odp)
|
||
* application/vnd.oasis.opendocument.spreadsheet (.ods)
|
||
* application/vnd.oasis.opendocument.text (.odt)
|
||
* application/vnd.openxmlformats-officedocument.presentationml.presentation (.pptx)
|
||
* application/vnd.openxmlformats-officedocument.spreadsheetml.sheet (.xlsx)
|
||
* application/vnd.openxmlformats-officedocument.wordprocessingml.document (.docx)
|
||
* application/x-bittorrent (.torrent)
|
||
* application/x-dtbncx+xml (.ncx)
|
||
* application/x-tar (.tar)
|
||
* application/xhtml+xml (.xht, .xhtml, .xhtm)
|
||
* application/zip (.zip)
|
||
* audio/flac (.flac)
|
||
* audio/mpeg (.mp1, .mp2, .mp3, .mpga)
|
||
* audio/ogg (.oga, .spx, .ogg, .opus)
|
||
* audio/x-aiff (.aif, .aiff, .aifc)
|
||
* audio/x-flac (.flac)
|
||
* audio/x-wav (.wav)
|
||
* image/bmp (.dib, .bmp)
|
||
* image/gif (.gif)
|
||
* image/heic (.heic)
|
||
* image/jpeg (.jpeg, .jpg, .jfif, .jpe)
|
||
* image/png (.png)
|
||
* image/svg+xml (.svg, .svgz)
|
||
* image/tiff (.tiff, .tif)
|
||
* image/webp (.webp)
|
||
* image/x-portable-pixmap (.ppm)
|
||
* text/css (.css)
|
||
* text/html (.htm, .html)
|
||
* text/plain (.cc, .text, .log, .el, .hxx, .txt, .f90, .cxx, .pm, .conf, .hh)
|
||
* video/mp4 (.mp4, .m4v, .mpg4)
|
||
* video/x-ms-wmv (.wmv)
|
||
* video/x-msvideo (.avi)
|
||
|
||
## CLI
|
||
|
||
mat2, перш за все - інструмент командного рядка, яким власне і користуюся сам.
|
||
|
||
### Встановлення
|
||
|
||
``` bash
|
||
dnf install mat2
|
||
```
|
||
|
||
### Перевірка залежностей
|
||
|
||
Перед початком роботи, варто перевірити наявність залежностей, без яких програма може працювати не коректно:
|
||
|
||
``` bash
|
||
mat2 --dependencies
|
||
```
|
||
|
||
### Повне стирання мета-даних
|
||
|
||
``` bash
|
||
mat2 /path/to/file
|
||
```
|
||
* у такому разі, буде створено копію документу з приставкою ".cleaned"
|
||
|
||
``` bash
|
||
mat2 --inplace /path/to/file
|
||
```
|
||
* перезаписати поточний файл (зручно, якщо оригінал більше не потрібен)
|
||
|
||
### Часткове стирання мета-даних
|
||
|
||
На прикладі PDF, "Повне стирання" передбачає створення його графічної форми замість текстової. Наскільки я розумію, це потрібно для обфускації фінгерпринтів: шрифтів або можливо ідентифікації системного рендерера. Тому вихідний файл ".cleaned" займатиме замість умовних 100 Кб оригіналу - близько 2 Мб.
|
||
|
||
Тому, якщо потрібно просто скинути мета-інформацію без додаткової анонімізації, додаємо опцію "--lightweight" (або "-L")
|
||
|
||
``` bash
|
||
mat2 --lightweight /path/to/file
|
||
```
|
||
* аналогічно, можна додати аргумент "--inplace"
|
||
|
||
### Перевірка мета-даних
|
||
|
||
``` bash
|
||
mat2 --show /path/to/file
|
||
```
|
||
* відображає "чутливі" дані для поточного формату "file"
|
||
|
||
Наприклад, якщо початковий файл PDF містив такі мета-дані:
|
||
|
||
``` bash
|
||
$ mat2 -show /path/to/file.pdf
|
||
[+] Metadata for /path/to/file.pdf:
|
||
creation-date: 1764124192
|
||
creator: Mozilla Firefox 145.0.1
|
||
format: PDF-1.7
|
||
mod-date: -1
|
||
producer: cairo 1.18.0 (https://cairographics.org)
|
||
```
|
||
|
||
то його "очищена" версія виглядатиме так:
|
||
|
||
``` bash
|
||
$ mat2 --show /path/to/file.cleaned.pdf
|
||
[+] Metadata for /path/to/file.cleaned.pdf:
|
||
creation-date: -1
|
||
format: PDF-1.5
|
||
mod-date: -1
|
||
```
|
||
|
||
### Повний список опцій
|
||
|
||
Інші комбінації підбирайте під власні потреби: їх там не так багато:
|
||
|
||
``` bash
|
||
mat2 --help
|
||
```
|
||
|
||
### Посилання
|
||
|
||
=> https://github.com/jvoisin/mat2 Схоже на актуальний репозиторій проєкту
|
||
=> https://github.com/tpet/mat2 Ще один репозиторій, який чомусь в топах Google (востаннє оновлений 4 роки тому)
|
||
|
||
## GUI
|
||
|
||
Metadata Cleaner - проста графічна обгортка для mat2 на базі GTK 4.
|
||
|
||
### Встановлення
|
||
|
||
``` bash
|
||
dnf install metadata-cleaner
|
||
```
|
||
|
||
### Посилання
|
||
|
||
=> https://metadatacleaner.romainvigier.fr
|
||
=> https://gitlab.com/rmnvgr/metadata-cleaner |