Cookie Converter — многорежимный конвертер cookies Netscape и JSON

ZennoLab Team

Super Moderator
Команда форума
Регистрация
22.01.2019
Сообщения
2 145
Реакции
4 672
Баллы
113

Cookie Converter — многорежимный двунаправленный конвертер cookies между форматами Netscape и JSON​


convertercookiebanner.jpg


Всем привет! Хотим поделиться с вами небольшой утилитой для работы с куками — Cookie Converter. Она помогает привести cookies к нужному формату и разобраться с датами их истечения без ручного редактирования и пересчёта временных меток.


Идея для создания этой утилиты появилась из вполне обычной ситуации: выгружаешь куки из браузера или расширения, а другая программа их не принимает. Где-то нужен Netscape, где-то JSON, в одном экспорте время записано в секундах, в другом — в миллисекундах, а иногда вместо timestamp вообще стоит текстовая дата или At the end of the session. Даже кавычки вокруг числового expirationDate могут оказаться причиной ошибки импорта.

Чтобы не разбираться с этим каждый раз вручную, и появился этот конвертер кук. Вставляете исходную куку, выбираете формат результата и представление времени, нажимаете «Конвертировать» — готовый результат появляется в нижнем поле. Остаётся скопировать его и использовать дальше.

Что умеет эта утилита (основной оконный функционал):

  • Конвертировать cookies из Netscape в JSON и обратно. Можно принудительно выбрать формат результата или оставить такой же, как на входе.
  • Автоматически определять входной формат. При необходимости Netscape или JSON можно указать вручную.
  • Обрабатывать JSON-массив cookies, отдельный объект и структуру с массивом cookies. Поддерживаются обычные поля domain, name, value, expirationDate, а также экспорты с названиями вроде Host raw, Name raw, Content raw и Expires raw.
  • Распознавать числовые временные метки: Unix timestamp в секундах, миллисекундах, микросекундах и наносекундах, а также Chromium/WebKit timestamp с отсчётом от 1601 года и Windows FILETIME.
  • Преобразовывать срок действия в Unix-секунды, миллисекунды, микросекунды или читаемую дату: DD-MM-YYYY HH:MM:SS и MM-DD-YYYY HH:MM:SS. Поддерживается разбор текстовых дат, включая ISO 8601 и HTTP-date.
  • Обрабатывать сессионные куки, в том числе At the end of the session, отсутствие даты истечения и другие предусмотренные обозначения сессии.
  • Принимать дробные Unix-секунды и отрицательные Unix timestamps в секундах.
  • Переносить основные атрибуты: домен, путь, имя, значение, признаки поддоменов, Secure, HttpOnly и срок действия. При работе с JSON также обрабатываются SameSite, session, storeId и id.
  • Выводить числовой expirationDate в JSON без кавычек, а не строкой с цифрами.

Всё это — в обычном оконном приложении для Windows. Два текстовых поля, настройки форматов и кнопки конвертации, очистки и копирования результата. Обработка выполняется локально: отправлять куки на сайт или во внешний сервис не нужно.

convertercookiescreensot.png


Где это может пригодиться:

Конвертер cookies может пригодиться в задачах браузерной и HTTP-автоматизации, при переносе cookie-наборов между инструментами, подготовке данных для скриптов и проверке экспортов. В частности, он может быть очень полезен и удобен при работе в программных комплексах ZennoPoster и ZennoBrowser, когда нужно сконвертировать куки из стороннего источника или привести expirationDate к представлению, которое ожидает инструмент импорта ZP и ZB.

Некоторые особенности:

Есть несколько нюансов. Для обычного совместимого Netscape cookies.txt выбирайте вывод времени в секундах. Читаемые даты, миллисекунды и микросекунды в этом формате оставлены для специальных задач и просмотра. Текстовые даты без часового пояса приложение считает временем UTC. А при конвертации JSON → Netscape поля, которых нет в Netscape-формате, например SameSite, storeId и id, в результат не переносятся.

Режим «Такой же формат» сохраняет именно тип представления — Netscape или JSON, а не исходную структуру JSON побайтно: на выходе формируется нормализованный набор поддерживаемых полей. Автоопределение временных меток тоже рассчитано на предусмотренные диапазоны, поэтому с нетипичными или неоднозначными датами результат стоит проверить.

Внизу прикреплен архив утилиты Cookie Converter в .exe формате, т.е. в запускаемом виде в среде Windows. В архиве также есть один дополнительный служебный файл, который необходим для работы конвертера. Также в архиве есть текстовый файл readme в markdown-формате с описанием дополнительного консольного командного режима работы приложения, когда оно запускается с параметрами.


Командный (фоновый) режим с параметрами:

В командном режиме окно программы не показывается и вся работа происходит в невидимом фоновом режиме, согласно прописанным параметрам командной строки. То есть, вы сможете использовать Конвертер при автоматической работе, например в проекте ZennoPoster'а, через кубик Запуск программы.

Расширенный режим командной строки включает в себя два подрежима:
  1. Подрежим конвертирования кук из файла (один файл на входе и один файл на выходе)
  2. Пакетный подрежим конвертирования кук из папки, когда можно конвертировать неограниченное количество файлов с куками из определенной папки (много файлов на входе и столько же файлов на выходе)

Проверено на вирусы. Отчёт проверки на VirusTotal: https://www.virustotal.com/gui/file...983c59a04d621e19a9efcce052f17b490ec/detection

Если заметите проблемы при использовании нашего конвертера:

Если попадётся экспорт, который Cookie Converter не распознаёт, прикладывайте небольшой обезличенный пример и описание ожидаемого результата. Только не публикуйте действующие значения авторизационных cookies — для проверки формата их лучше заменить на тестовые.
 

Вложения

Последнее редактирование модератором:
Да, как раз думал про такую штуку, затещу. Спасибки.
 
  • Оценить
Реакции: Sergodjan

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)