Перейти к содержимому

Право

Куки

Что сайт кладёт вам в браузер. Этот сайт кладёт в ваш браузер семь вещей и ни одной до того, как вы что-нибудь сделаете. Две из семи это ваши ключи входа, и неприятное про то, где они лежат, сказано ниже, а не оставлено вам на самостоятельную находку.

Редакция 3, действует с 12 октября 2026

Весь список, семь записей

Одна куки, четыре ключа в местном хранилище и два ключа, живущих не дольше вкладки. Это всё.

Каждая названа тем именем, которое вы увидите в средствах разработчика своего браузера, чтобы список можно было сверить, а не принять на веру.

  • NEXT_LOCALE, куки

    Держит код языка и больше ничего. Пишется только когда вы выбрали язык в меню, и живёт год.

  • armanos-theme, местное хранилище

    Держит слово dark или слово light. Пишется только когда вы нажали кнопку темы.

  • armanos_access_token, местное хранилище

    Короткоживущий ключ, подтверждающий вход. Пишется при входе, снимается при выходе.

  • armanos_refresh_token, местное хранилище

    Ключ, которым у сервера просят свежий ключ доступа. Пишется при входе, снимается при выходе.

  • armanos_browser_key, местное хранилище

    Случайный номер, пишется при входе, чтобы список сеансов узнавал этот браузер и показывал его одной строкой. Выход его не стирает; наш сервер хранит только его отпечаток.

  • armanos.fromApp, хранилище вкладки

    Держит единицу, если вы пришли сюда из программы. Пропадает вместе с закрытой вкладкой.

  • armanos.support.email, хранилище вкладки

    Держит почту из формы входа, регистрации или сброса пароля и пишется, когда вы нажали там «Связаться с поддержкой». Форма поддержки читает её один раз и стирает; иначе она уходит вместе с вкладкой. В адрес страницы почта не попадает, пароль туда не пишется.

Ключи входа и риск в них

Оба ключа входа лежат в местном хранилище, а его читает любой сценарий, работающий на странице. Куки с пометкой http-only сценарию недоступна; эти два ключа доступны, и это настоящая разница, а не мелочь.

Между ними и чужим сценарием стоит то, что чужих сценариев здесь не работает. Правило ответа, названное в доказательстве, пускает сценарии только с нашего же адреса, поэтому чужой браузер отвергнет, даже окажись он на странице.

Выход снимает оба

Вы вышли, и оба ключа стёрты тут же. Очистка данных сайта в браузере делает то же самое. Ни один из них никогда не уходит как куки: они едут заголовком запроса на наш сервер и больше никуда.

До вашего действия не пишется ничего

Заход, в котором вы только читали страницы, не оставляет ничего. Каждая из семи записей появляется от вашего действия: выбрали язык, нажали тему, вошли, пришли из программы или нажали «Связаться с поддержкой» под формой входа.

При открытии страницы не пишется ничего, в глубине тоже. Служебного сценария, держащего копию сайта, здесь нет, и базы в браузере с вашими данными здесь тоже нет.

Куки языка

В этой куки лежит код языка вроде en или ru. Пишет её меню языков, а читает ровно одно место: переход, уводящий адрес без языка на адрес с языком.

У неё стоит пометка lax, поэтому чужой сайт не заставит ваш браузер отправить её незаметно. От сценариев она не закрыта: код языка не тайна и никого не называет.

Ключ темы и ключи вкладки

Ключ темы держит одно из двух слов. Маленький встроенный в страницу сценарий читает его до отрисовки, и поэтому тёмная страница не мигает белым на входе.

Ключ armanos.fromApp ставится только тем, кто пришёл из программы. Он нужен один раз, чтобы предложить открыть программу уже вошедшей, и браузер выбрасывает его вместе с вкладкой.

Ни счётчиков, ни чужих сценариев

Счётчиков на этом сайте нет. Ни диспетчера меток, ни записи сеанса, ни сборщика падений, ни рекламного пикселя, ни кнопки соцсети, звонящей домой.

Это счёт, а не заявление. Все собранные страницы сайта обойдены на предмет того, за чем браузер идёт сам: сценарии, стили, картинки, рамки и подсказки предварительного соединения. Указывающих на чужой адрес среди них ноль.

Ничего не уходит шрифтовой службе

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

Как проверить эту страницу самому

Откройте средства разработчика, зайдите в раздел хранилищ и посмотрите куки и местное хранилище для этого адреса. Там должен оказаться список выше и ничего сверх него.

Вторую половину показывает раздел сети. Перезагрузите страницу с открытым разделом, и в каждой строке будет наш собственный адрес.

Чего эта страница не разбирает

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

Где это решается

Каждая строка это файл, который можно открыть.

Куки языка: где пишется и где читается
apps/web/components/site/LanguageSwitcher.tsx · apps/web/middleware.ts
Два ключа входа: пишутся при входе, снимаются при выходе
apps/web/lib/auth.ts · apps/web/lib/api.ts
Ключ темы и сценарий, читающий его до отрисовки
apps/web/components/site/ThemeToggle.tsx · apps/web/app/not-found.tsx
Ключ вкладки: ставится при приходе из программы и нужен один раз
apps/web/components/auth/AuthForm.tsx · apps/web/components/dashboard/OpenInAppBanner.tsx
Правило, пускающее сценарии и стили только с нашего адреса
apps/web/next.config.js
Выданный ключ доступа не кладётся в браузер, проверено прогоном
apps/web/test/api-keys-web.js
Ключ почты для поддержки: пишет «Связаться с поддержкой», стирает форма поддержки
apps/web/lib/поддержка-со-входа.ts · apps/web/components/support/SupportForm.tsx

Вопросы

Почему нет полосы про куки?
Куки здесь одна, в ней код языка, и пишется она только после того, как вы сами выбрали язык. Никто на этом сайте вас не считает, не ведёт между сайтами и никому ничего не передаёт.
Можно ходить по сайту с закрытым хранилищем?
Читать можно. Каждая запись обёрнута так, что отказ проглатывается, а не летит вам в лицо; язык тогда идёт за настройками браузера, а тема за настройками системы. Вход не удержится, потому что ключу негде лежать.
Мой вход хранится в куки?
Нет. Оба ключа лежат в местном хранилище и едут на наш сервер заголовком запроса. Ни одна наша куки на сервер не уходит вообще.
Что происходит с семью записями при выходе?
Оба ключа входа снимаются сразу. Куки языка, ключ темы и ключ браузера остаются: ни один из них не открывает вход. Два ключа вкладки уходят, когда вы закрываете вкладку.
Как получено число чужих обращений?
Мы прошли все страницы сайта и прочли каждое место, откуда браузер тянет что-то сам, а не посмотрели пару страниц. Вышел ноль, и держит его правило, пускающее сценарии и стили только с нашего адреса.

Редакции этого документа

  1. Редакция 3, 12 октября 2026: Ответ о том, что бывает с записями при выходе, теперь называет все семь: не хватало ключа этого браузера. Выход его оставляет.
  2. Редакция 2, 5 октября 2026: В списке теперь семь записей: не хватало почты, которую форма входа передаёт форме поддержки, и добавлен ключ этого браузера для списка «Где открыт аккаунт». Страница теперь называется «Куки». Сроки хранения на сервере теперь указывают на таблицу того, что хранит сервер.
  3. Редакция 1, 13 сентября 2026: Первая редакция.

Нашли то, чего мы не перечислили?

Откройте средства разработчика, сверьте и напишите нам, что увидели. Такая страница стоит ровно столько, сколько её самый короткий список.