Недавно мы приводили в порядок сайт-визитку поставщика оборудования. Сервис проверки соответствия закону о персональных данных нашёл на нём сторонние ресурсы и устаревшую политику. Ниже всё, что пришлось сделать, по шагам. Список подойдёт почти любому небольшому сайту компании: формы заявок, Метрика, карта и пара юридических страниц.

Посмотрите, куда сайт ходит без спроса

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

У нас таким запросом оказалась иконка галочки с зарубежного сервиса. Проверка сочла это трансграничной передачей данных: браузер посетителя отдаёт его IP-адрес серверу за рубежом. Иконку скачали и положили на свой сервер. Так же поступили со всем остальным внешним: скриптами, стилями, шрифтами.

Запускайте аналитику только после согласия

Баннер cookie внизу экрана с кнопкой «Принимаю» решает половину задачи. Вторая половина в том, чтобы до нажатия на сайте ничего не отправлялось.

  • Код Метрики загружается только после согласия. Если на сайте стоит Google Tag Manager, проверьте, что в нём. У нас там было ровно два тега, Метрика и Google Analytics, поэтому контейнер убрали, а Метрику подключили напрямую.
  • Заглушку ym создайте сразу, а откладывайте только загрузку счётчика. Иначе формы, которые сообщают о заявке через ym(..., 'reachGoal', ...), до согласия падают с ошибкой, и цели теряются. С заглушкой вызовы копятся в очереди и уходят в Метрику после согласия.
  • Пиксель Метрики в <noscript> не ставьте: он сработает до согласия.
  • Яндекс Карты тоже грузятся только после согласия или по кнопке «Показать карту». Когда посетитель нажимает «Принимаю», карта должна появиться сама, без второго клика.

После этого в настройках счётчика может появиться статус «код не найден». Это нормально: робот Метрики не соглашается на cookie и кода не видит. Данные при этом идут, их видно в отчётах.

Добавьте согласие в каждую форму

В каждой форме нужна обязательная галочка «Я даю согласие на обработку персональных данных» со ссылками на политику и на текст согласия. Без галочки форма не отправляется. Проверьте все формы сайта: обратный звонок, заявку в модальном окне, подписку.

Проверьте документы и реквизиты

  • На сайте две отдельные страницы: политика обработки персональных данных и согласие на обработку.
  • Политика учитывает изменения по 420-ФЗ и описывает порядок уведомления Роскомнадзора об утечке: в течение 24 часов о самом инциденте и в течение 72 часов о результатах расследования (ст. 21.1 152-ФЗ).
  • Ссылки на обе страницы, ИНН и ОГРН стоят в подвале на каждой странице.
  • Адреса внутри текста политики указывают на ваш домен в том виде, в каком он открывается. У нас в пункте «актуальная версия политики расположена по адресу» оставалась ссылка без www и без слеша на конце.
  • Документы открыты для поисковых роботов. Если закрыть их в robots.txt, сервисы проверки их не прочитают и напишут, что политика устарела. Так и было: претензия «политика не упоминает 420-ФЗ» оказалась ложной, текст был, но сканер его не видел.

Сервис проверки может потребовать ещё публичную оферту и правила возврата. На визитке без цен, корзины и оплаты публичной оферты не возникает, проверка ищет эти страницы формально. Если хочется закрыть и эту претензию, достаточно страницы «Условия работы»: как оставить заявку, как заключается договор, поставка и возврат по договору.

Отдельно проверьте, есть ли компания в реестре операторов персональных данных на сайте Роскомнадзора.

Защитите формы от ботов, не ломая кэш

Мы поставили три проверки:

  • скрытое поле-ловушку: человек его не видит, бот заполняет, и такая заявка молча отбрасывается;
  • подписанный токен: скрипт берёт его с сервера при первом касании формы, сервер проверяет подпись и возраст токена, от 2 секунд до 6 часов;
  • проверку адреса, с которого пришла заявка: запрос с чужого сайта отклоняется.

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

Не забудьте про почту

Если сайт переезжал на другой сервер, обновите SPF-запись домена и подключите DKIM. У нас SPF указывал на старый хостинг, и письма с заявками рисковали попасть в спам, хотя почтовый сервер их принимал.

Короткий список для проверки

  • До согласия на cookie сайт не обращается к чужим доменам.
  • Метрика и карты запускаются после согласия, цели форм не теряются.
  • В каждой форме есть обязательная галочка согласия со ссылками на документы.
  • Политика упоминает 420-ФЗ и сроки уведомления 24 и 72 часа, адреса в тексте верные.
  • Документы и реквизиты в подвале, документы открыты в robots.txt.
  • Формы защищены от ботов, письма с заявок не попадают в спам.

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