Як перевірити cookies на відповідність GDPR – допоможе новий відкритий інструмент

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

Що говорить закон

Стаття №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, призначення яких невідоме напевно.

Як вирішити проблему

Отримати повний список 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.

Джерело: habr.com