Как проверить cookies на соответствие GDPR — поможет новый открытый инструмент

Разработчики базы данных CovenantSQL представили опенсорсную утилиту Cookie Scanner, которая определяет, какие cookies устанавливают сайты и с какой целью.

Обсуждаем, зачем понадобился инструмент и как он работает.

t51gdi3mxacqlw7zyoiv-jzhbzu.jpeg
/ Flickr / Yann Cœuru / CC BY / Фото изменено

Что гласит закон


Статья №30 Общего регламента по защите данных (GDPR) обязывает сайты, использующие персональные данные пользователей, уведомлять последних об установке cookies и получать на это согласие.

Работу с cookies на территории Евросоюза также регулирует другой закон — ePrivacy Directive, действующий с 2009-го (в этом году его заменит более строгий ePrivacy Regulation, о котором мы рассказывали в одном из прошлых материалов). Он также обязывает владельцев сайтов уведомлять об обработке cookies.

За нарушение требований GDPR и директивы ePrivacy владельцу ресурса могут выписать крупный штраф — до 20 млн евро или 4% годового оборота организации.

В чем сложность


Несмотря на штрафы, многие сайты устанавливают так называемые необязательные cookies без согласия пользователей.

Считается, что интернет-ресурс не обязан получать согласие пользователя на установку cookies, если те необходимы для корректного функционирования сайта. Однако формулировки в законодательстве довольно размыты, и не всегда понятно, когда это правило применимо.

На почве этого возникают конфликтные ситуации. Например, французский издатель Editions Croque Futur ставил посетителям сайта cookies для проведения маркетинговых кампаний. Владельцы отмечали, что эти cookies обеспечивают рентабельность сайта и потому жизненно необходимы для работы сервиса. Но регулятор не согласился с их доводами и выписал компании штраф в размере 25 тыс. евро.

Другая проблема связана с тем, что GDPR не требует указывать и описывать все third-party сookies на сайте, например те, которые нужны для работы плагинов социальных сетей. Как пишут представители Британского комиссариата по информации (Information Commissioner’s Office) в своем руководстве (PDF, стр. 17), компании достаточно сгруппировать сторонние cookies по категориям и объяснить их назначение.

Итальянский регулятор объясняет, что это вынужденная мера, так как иначе владельцам пришлось бы постоянно мониторить сторонние cookies на сайте и следить за их назначением, которое может изменяться со временем. Выполнить эту задачу сложно хотя бы потому, что у веб-мастеров часто нет прямых контактов со всеми организациями, ответственными за установку cookies на их ресурсе.


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

kmfno-0nnxsa0aqyiktp869is9a.jpeg
/ Flickr / Benjamin Horn / CC BY

Как решить проблему


Получить полный список cookies, устанавливаемый тем или иным ресурсом (и параллельно найти сайты, нарушающие требования GDPR), может утилита Cookie Scanner. В сети довольно большое количество подобных сервисов, но многие из них платные. Код Cookie Scanner является открытым и лежит в репозитории на GitHub.

Cookie Scanner анализирует статус cookies и формирует отчет с описанием их задач. Информацию инструмент берет на специализированном ресурсе cookiepedia, а для её представления использует базу данных CQL. Сейчас в ней находится информация о 10 тыс. различных cookies. О том, как начать работать с CQL-базой — в руководстве для быстрого старта, которое подготовили разработчики из CovenantSQL.

Для Cookie Scanner требуется операционная система MacOS/Linux и браузер Chrome. Как вариант, можно обратиться к его headless-версии, которая используется для тестирования кода и верстки. Она не отрисовывает содержимое на экране, поэтому работает быстрее и потребляет меньше памяти.

Немаловажным свойством также является возможность установки на «голый» Linux-сервер — достаточно поставить пакет, и браузер будет работать из коробки.

Для запуска headless-chrome в контейнере нужно запустить команду:

$ docker container run -d -p 9222:9222 zenika/alpine-chrome --no-sandbox \
 --remote-debugging-address=0.0.0.0 --remote-debugging-port=9222


Установка Cookie Scanner выполняется с помощью get:

$ go get github.com/CovenantSQL/CookieScanner


Инструмент формирует отчеты о cookies в форматах PDF, JSON и HTML. Функция парсера для вывода информации в формате PDF выглядит вот так:

func outputAsPDF(remote *godet.RemoteDebugger, htmlFile string) (pdfBytes []byte, err error) {
	var tab *godet.Tab

	htmlFile, _ = filepath.Abs(htmlFile)
	fileLink := "file://" + htmlFile

	if tab, err = remote.NewTab(fileLink); err != nil {
		return
	}
	if err = remote.ActivateTab(tab); err != nil {
		return
	}

	// wait for page to load
	time.Sleep(time.Second)

	return remote.PrintToPDF(godet.PortraitMode())
}


Вот так генерируется HTML-отчет с помощью CLI-режима:

$ CookieScanner cli \
    --headless \
    --classifier "covenantsql://050cdf3b860c699524bf6f6dce28c4f3e8282ac58b0e410eb340195c379adc3a?config=./config/config.yaml" \
    --html cql.html covenantsql.io


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

Месяц назад нидерландское Агентство по защите данных (AP) объявило, что в ближайшее время будет активно заниматься проверкой жалоб пользователей на сайты, нарушающие правила работы с cookies. Можно предположить, что инструментов (в том числе опенсорсных), позволяющих мониторить cookies, также станет больше. И использовать их будут как пользователи, так и владельцы сайтов, чтобы выполнять требования GDPR и ePrivacy Regulation.

Наши дополнительные ресурсы и источники:

lcevevvhrpxsnxownufk6ykmvma.pngСделка на $39 млн: почему создатели опенсорсной СУБД решили заняться мобильными разработками

nh3bvginmatsrsxcu6loffpn5yc.pngПерсональные данные: в чём суть закона?
nh3bvginmatsrsxcu6loffpn5yc.pngМинимизация рисков: как не потерять ваши данные
nh3bvginmatsrsxcu6loffpn5yc.pngРезервное копирование файлов: как подстраховаться от потери данных

x16rxu3buiqhpy-2jmr3iwscep0.pngКак у нас все устроено: дайджест от 1cloud
x16rxu3buiqhpy-2jmr3iwscep0.pngКак облачные технологии помогли разглядеть чёрную дыру
x16rxu3buiqhpy-2jmr3iwscep0.pngПотенциальные атаки на HTTPS и способы защиты от них

© Habrahabr.ru