Когда пользователь заходит в интернет-магазин или сервис подписки, браузер услужливо подставляет в форму имя, номер телефона, рабочий email и адрес доставки. С точки зрения конверсии и продуктового UX автозаполнение (Autofill) — эталон бесшовного клиентского пути.
Однако за этой механикой скрывается двойной пласт рисков: локальное хранилище клиентских устройств, привлекающее стилеры, и юридическая граница сбора персональных данных (ПДн) на стороне веб-ресурса.
Разбираем архитектуру хранения данных в Chromium, Firefox и Safari, технические стандарты спецификации autocomplete и правила правовой безопасности веб-форм для владельцев бизнеса.
1. Техническая анатомия Autofill: где браузеры держат профили
Вопреки распространенному заблуждению, браузер не отправляет данные на веб-сервер до тех пор, пока пользователь явно не подтвердит действие в интерфейсе или скрипт страницы не считает значение из DOM-дерева. Локально эти сведения изолированы в профилях операционной системы.
Архитектура клиентских хранилищ
[ Пользовательские данные ]
│
├── Chromium-based (Chrome, Edge, Яндекс) ──► SQLite: "Web Data" (папка профиля)
│ └─ Пароли: "Login Data" (OS Crypt / DPAPI / Keychain)
│
├── Mozilla Firefox ────────────────────────► SQLite: "formhistory.sqlite"
│ └─ Учетные данные: "logins.json" + "key4.db"
│
└── Apple Safari ───────────────────────────► macOS/iOS Contacts.app (карточка «Я»)
└─ Пароли и ключи: iCloud Keychain (Secure Enclave)
1. Браузеры на базе Chromium (Google Chrome, Edge, Яндекс.Браузер, Brave)
Платформы Chromium разделяют общие текстовые поля и критические секреты:
- Анкетные данные, адреса, реквизиты карт: база данных SQLite под именем
Web Dataв директории профиля (DefaultилиProfile N).- Windows:
%LOCALAPPDATA%\Google\Chrome\User Data\Default\Web Data - macOS:
~/Library/Application Support/Google/Chrome/Default/Web Data - Linux:
~/.config/google-chrome/Default/Web Data
- Windows:
- Пароли: отдельная база
Login Data, где хеши и токены защищены системным шифрованием (DPAPI на Windows, Keychain на macOS).
2. Mozilla Firefox
В Gecko используется аналогичная схема разделения:
- История форм: база SQLite
formhistory.sqliteв каталоге профиля%APPDATA%\Mozilla\Firefox\Profiles\<profile-id>\. - Учетные записи: связка
logins.json(зашифрованные записи) иkey4.db(ключи шифрования мастер-пароля).
3. Apple Safari
Safari принципиально отличается от конкурентов. Браузер не генерирует собственную изолированную базу для контактов:
- Имена, телефоны, адреса: считываются напрямую из системного приложения «Контакты» (карточка «Моя карточка»).
- Пароли и платежные токены: аппаратно изолированная iCloud Keychain с аппаратной верификацией через Secure Enclave.
2. Разметка формы по стандартам WHATWG: как заставить Autofill работать корректно
Чтобы браузер не гадал по косвенным эвристикам, в HTML5 утвержден стандартизированный атрибут autocomplete (согласно спецификации WHATWG / W3C).
Корректное указание атрибутов ускоряет заполнение формы на 30–40% и исключает ошибки валидации на стороне бэкенда:
| Сценарий поля | Атрибут type | Значение autocomplete |
| Полное имя | type="text" | autocomplete="name" |
| Имя (отдельно) | type="text" | autocomplete="given-name" |
| Фамилия (отдельно) | type="text" | autocomplete="family-name" |
| Электронная почта | type="email" | autocomplete="email" |
| Номер телефона | type="tel" | autocomplete="tel" |
| Адрес доставки | type="text" | autocomplete="street-address" |
| Новый пароль при регистрации | type="password" | autocomplete="new-password" |
| Одноразовый код из SMS | type="text" | autocomplete="one-time-code" |
Пример безопасной и оптимизированной разметки формы
Безопасность автозаполнения: Никогда не скрывайте вспомогательные поля с
display: noneили нулевой прозрачностью в расчете на скрытый сбор профиля через Autofill. Современные анализаторы уязвимостей и инспекторы расценивают такие приемы как скрытый сбор данных без согласия субъекта (Dark Patterns), что прямо ведет к предписаниям надзорных органов.
3. Юридическая сторона Autofill: нормы 152-ФЗ и Роскомнадзора
Подстановка сохраненных значений в поля интерфейса сама по себе происходит на устройстве пользователя. Но как только данные зафиксированы в коде веб-страницы или переданы на бэкенд, оператор вступает в зону действия Федерального закона № 152-ФЗ «О персональных данных».
[ Браузер подставил Autofill ]
│
▼
Инпут заполнен в DOM
│
┌────────────────┴────────────────┐
│ │
Пользователь нажал кнопку Скрипт перехватил инпут
«Отправить заявку» до нажатия кнопки
│ │
▼ ▼
Легальный сбор Грубое нарушение
(при наличии чекбоксов (Сбор ПДн без согласия,
и правового основания) ч. 2 ст. 13.11 КоАП РФ)
Главные ошибки и юридические риски при автозаполнении
- Сбор данных до клика (срыв согласия)Если JavaScript-трекеры сайта (аналитика, вебвизоры, скрипты захвата лидов) считывают содержимое инпутов сразу по событию
changeилиblurбез нажатия кнопки отправки — юридически сбор ПДн признается состоявшимся. Субъект не совершал волеизъявления на передачу, а сервер оператора уже записал его ФИО и телефон. Штраф по ч. 2 ст. 13.11 КоАП РФ составляет до 700 000 рублей. - Один чекбокс «за всё» (Bundling)Закон запрещает смешивать под одной кнопкой или одним чекбоксом публичную оферту, согласие на обработку ПДн и согласие на получение маркетинговой рассылки (ст. 18 Закона «О рекламе»). Маркетинговые коммуникации требуют отдельного добровольного согласия.
- Предварительно проставленные галочки (Pre-ticked checkboxes)Чекбокс в DOM обязан иметь атрибут
checked = false. Галочка, проставленная за пользователя по умолчанию, разрушает критерии сознательности и информированности волеизъявления. - Непрозрачный состав данныхКатегории сведений, собираемые через автозаполнение (включая технические параметры, IP-адреса и cookie-идентификаторы), должны быть прямо указаны в Политике конфиденциальности и синхронизированы с реестровой записью оператора в Роскомнадзоре.
4. Чек-лист Legal & UX: проектируем форму без штрафов
При проектировании форм захвата лидов, регистрации и чекаута внедряйте следующие правила:
- [ ] Атрибуты автозаполнения: все поля формы размечены точными значениями
autocomplete(name, tel, email, address) без скрытых инпутов. - [ ] Изоляция отправки: обработчики JS передают данные на бэкенд строго по событию
submit, исключая фоновое чтение промежуточного состояния формы. - [ ] Раздельные согласия:
- Согласие на обработку ПДн оформлено отдельным блоком с прямой кликабельной ссылкой на Политику.
- Согласие на рекламные рассылки и спецпредложения вынесено в отдельный независимый чекбокс.
- [ ] Пустые чекбоксы: ни одна отметка согласия не проставлена по умолчанию.
- [ ] Локализация баз данных: серверная инфраструктура первичного сбора и хранения баз данных граждан РФ физически размещена на территории Российской Федерации (ст. 18 Закона № 152-ФЗ).
- [ ] Синхронизация с Роскомнадзором: перечень полей формы не превышает заявленные цели в уведомлении об обработке персональных данных.






