toolkit

Нічого не надсилається — ось як це перевірити

Майже кожен конвертер файлів десь обіцяє приватність. І майже жоден не дає змоги цю обіцянку перевірити. Ця сторінка дає: кожна перевірка нижче займає близько тридцяти секунд, потребує лише браузера, який ви вже відкрили, і одразу викрила б нас, якби ми говорили неправду.

Що саме ми стверджуємо

Коли ви конвертуєте файл тут, байти цього файлу нікуди не передаються. Декодери й кодери — це модулі WebAssembly, які браузер завантажує один раз і далі виконує локально, на вашому власному процесорі. У коді цього сайту немає точки прийому файлів, куди вміст міг би потрапити, бо її ніколи не писали.

Це твердження вузьке, і вузьке навмисно: воно стосується ваших файлів. Ми не кажемо, що сторінка взагалі не робить мережевих запитів: нижче перелічено ті, які вона робить, бо сторінці, яка їх приховує, не варто було б вірити й щодо файлів.

Перевірте самі: вкладка Network

Відкрийте будь-який інструмент на сайті. Перш ніж щось конвертувати, натисніть F12 (або Cmd+Option+I на Mac), щоб відкрити інструменти розробника, і перейдіть на вкладку Network. Увімкніть «Preserve log», якщо така опція є.

Тепер перетягніть файл і конвертуйте його. Стежте за списком. Ви побачите, як уперше завантажується модуль WebAssembly для цього формату — файл на кшталт heic_bg.wasm із цього ж домену — і не побачите жодного запиту, який ніс би ваш файл у зворотному напрямку. Відсортуйте за розміром або відфільтруйте список за Fetch/XHR: вивантаження мало б вигляд запиту завбільшки з ваш файл, і сховати його від цієї панелі неможливо.

У цій відсутності й уся суть. Конвертер, який вивантажує файли, не може цього приховати тут, бо браузер показує кожен запит сторінки — зокрема й ті, які сторінка воліла б не показувати.

Сильніша перевірка: вимкніть мережу

Вкладка Network показує, що сторінка зробила. Ця перевірка показує, на що вона взагалі здатна. Відкрийте будь-яку сторінку інструмента, потім від'єднайтеся від Wi-Fi або увімкніть режим польоту — і конвертуйте файл. Він сконвертується.

Одне чесне застереження: перша конвертація кожного формату потребує завантаження відповідного модуля WebAssembly, тож зробіть одну конвертацію онлайн, перш ніж вимикати мережу, інакше модуля ще не буде в кеші. Після цього все працює суто локально, і робота в офлайні доводить це так, як жодна обіцянка не зможе.

Перевірка, яку не доводиться робити руками

Кожна сторінка тут віддається із заголовком Content Security Policy: це перелік єдиних адрес, куди цій сторінці взагалі дозволено щось надсилати, і за його дотриманням стежить ваш браузер, а не ми. Нашу політику можна прочитати в заголовках відповіді будь-якої сторінки — у тій самій вкладці Network.

Це важливо, бо це не обіцянка, а обмеження. Якби JavaScript цього сайту спробував надіслати ваше фото на сервер, не названий у політиці, браузер відхилив би запит і зафіксував порушення. Саме завдяки політиці «нічого не надсилається» перевіряє програма, і це вже не питання репутації.

Що сайт таки надсилає

Сенс цієї сторінки — говорити прямо. На робочому сайті privatetoolkit.org завантажується Google Analytics, який повідомляє, що сторінку переглянули і приблизно з якої частини світу. Він налаштований із вимкненими Google Signals і персоналізацією реклами. Він знає, що на сторінку хтось зайшов; він не отримує — і не міг би отримати — нічого про ваші файли, бо код конвертації й код аналітики ніде не перетинаються.

На сайті також є рекламний слот, який на момент написання повністю вимкнений: жоден рекламний скрипт не завантажується. Якщо його знову ввімкнуть, це буде один банер від однієї мережі з позначкою «Реклама».

Це повний перелік. Ні акаунтів, ні файлів cookie, крім тих, що ставить аналітика, ні сховища файлів — та й зберігати нічого, бо ваші файли сюди не потрапляють.

Чого коштує такий підхід

Було б нечесно продавати «працює на вашому пристрої» як щось безкоштовне. Роботу виконує ваш процесор, тож довге відео потребує відчутного часу, а дуже великий файл — достатньо пам'яті, щоб його втримати; серверна ферма була б швидшою. Деякі конвертації, які під силу серверу, у браузері неможливі взагалі.

І конвертація контейнера змінює контейнер, а не кодек. Відео HEVC з iPhone стане файлом MP4, який усе одно не відтвориться на комп'ютері без декодера HEVC. Ми кажемо про це одразу, а не звітуємо про успіх, який згодом виявиться марним.

Часті запитання

Чи можу я перевірити це самостійно, якщо я не розробник?

Так. Для перевірки у вкладці Network досить відкрити панель і подивитися на список: ви дивитеся, чи є там щось, а не читаєте код. Офлайн-перевірка потребує ще менше: вимкніть Wi-Fi і подивіться, чи інструмент працює далі.

Чи видаляються мої файли після конвертації?

Немає чого видаляти. Файли не потрапляють на сервер, тож ніде немає копії, яку ми могли б зберігати чи стирати. Більшість конвертерів відповідають на це питання строком зберігання; тут чесна відповідь — такого питання просто не виникає.

Чи є обмеження на розмір файлу?

Ми жодного не встановлюємо. Практична межа — це пам'ять вашого пристрою, бо файл тримається саме там під час конвертації. Нічого не обмежується заради тарифів, бо конвертація нічого нам не коштує.

Чи працює це офлайн?

Так, якщо модуль WebAssembly для потрібного формату вже завантажено. Зробіть одну конвертацію такого типу онлайн — і далі інструмент працюватиме з вимкненою мережею.

Звідки мені знати, що сам модуль WebAssembly нікуди не надсилає мій файл?

На нього поширюється та сама Content Security Policy: він виконується всередині сторінки й обмежений тим самим переліком дозволених адрес. Усе, що він спробував би надіслати деінде, браузер заблокував би й зафіксував як порушення.