diff --git a/components/report-window/explainers.tsx b/components/report-window/explainers.tsx index f360caa..ace9dd7 100644 --- a/components/report-window/explainers.tsx +++ b/components/report-window/explainers.tsx @@ -9,7 +9,49 @@ export const Explainers: Record J

Sztucznie wygenerowane identyfikatory przechowywane w plikach Cookies stanowią dane osobowe. Wskazuje na to wprost Art. 4. pkt 1. RODO, wymieniając „identyfikator - internetowy” i „numer identyfikacyjny” jako przykłady danych osobowych. + internetowy” i „numer identyfikacyjny” jako przykłady danych osobowych. Losowe + przypisane identyfikatory mogą nie zawierać imienia i nazwiska osoby, której + dotyczą, ani nie prowadzić wprost do ich ustalenia, ale pozwalają odróżnić jedną, + daną konkretną osobę, od innych. +

+

+ Por. komentarz z D. Lubasz [w:] Ochrona Danych Osobowych [red.] D. Lubasz, Warszawa + 2020 r., str. 81: +

+

+ + Zidentyfikowaną osobą fizyczną jest osoba, której tożsamość jest ustalona - + bezpośrednio i natychmiast, czyli taka, którą bezpośrednio można wskazać, + wyodrębnić lub wyróżnić z określonej zbiorowości.{' '} + Nie musi to natomiast polegać na podaniu jej imienia nazwiska. + Konstatacja ta jest zwłaszcza istotna w środowisku cyfrowym, w którym + identyfikacja sprowadza się do oznaczenia danego użytkownika w celu wywierania + na niego określonego wpływu. (...) Możliwą do zidentyfikowania jest osoba, + której tożsamość dopiero administrator może ustalić -{' '} + niezależnie od tego, czy to zrobi, czy nie. + +

+

+ Podobnie za{' '} + + P. Litwiński [w:] Rozporządzenie UE w sprawie ochrony osób fizycznych w związku + z przetwarzaniem danych osobowych i w sprawie swobodnego przepływu takich + danych, Komentarz [red.] P. Litwiński, Warszawa 2018 r. + + : +

+

+ + Jak zwrócono uwagę w nauce prawa, identyfikacja osoby powinna być rozumiana jako + możliwość „fizycznego” wskazania tejże osoby, nie zaś jako ustalenie + podstawowych danych tej osoby (...). Analogicznie,{' '} + identyfikacja osoby nie wymaga znajomości jej imienia lub nazwiska, + wymaga natomiast znajomości pewnych unikalnych cech tej osoby, które odróżniają + ją od innych osób (...). W ten sam sposób należy więc rozumieć zwrot „można + zidentyfikować” - nie tylko jako możliwość odniesienia konkretnej informacji do + konkretnej osoby, lecz także jako możliwość wskazania tej osoby, rozumianego + jako faktyczne wyodrębnienie jej spośród innych osób. +

), diff --git a/components/report-window/problems/transfer-outside-eu.tsx b/components/report-window/problems/transfer-outside-eu.tsx index 6784fd0..e1d2ab6 100644 --- a/components/report-window/problems/transfer-outside-eu.tsx +++ b/components/report-window/problems/transfer-outside-eu.tsx @@ -5,7 +5,8 @@ import { Problem } from './problem'; export class TransferOutsideEU extends Problem { getNecessaryExplainers(): ExplainerKey[] { - return []; + const has_cookies = this.getRelatedClusters().some((cluster) => cluster.hasCookies()); + return has_cookies ? ['cookies_are_pii'] : []; } qualifies(): boolean { diff --git a/components/report-window/problems/unknown-legal-basis.tsx b/components/report-window/problems/unknown-legal-basis.tsx index 740f134..d796bb3 100644 --- a/components/report-window/problems/unknown-legal-basis.tsx +++ b/components/report-window/problems/unknown-legal-basis.tsx @@ -21,7 +21,11 @@ const testCluster: (cluster: RequestCluster, answers: ParsedHostAnswers | undefi export class UnknownLegalBasis extends Problem { getNecessaryExplainers(): ExplainerKey[] { - return ['responsibility_for_third_parties']; + const has_cookies = this.getRelatedClusters().some((cluster) => cluster.hasCookies()); + return [ + 'responsibility_for_third_parties', + ...(has_cookies ? ['cookies_are_pii' as ExplainerKey] : []), + ]; } qualifies(): boolean { diff --git a/components/report-window/problems/unknown-purpose.tsx b/components/report-window/problems/unknown-purpose.tsx index 31afade..14d771c 100644 --- a/components/report-window/problems/unknown-purpose.tsx +++ b/components/report-window/problems/unknown-purpose.tsx @@ -6,7 +6,12 @@ import { Problem } from './problem'; export class UnknownPurposes extends Problem { getNecessaryExplainers(): ExplainerKey[] { - return []; + const has_cookies = this.getAffectedClusters().some((cluster) => cluster.hasCookies()); + if (has_cookies) { + return ['cookies_are_pii']; + } else { + return []; + } } isHostAffected(host: string) {