diff --git a/email-template-harsh.js b/email-template-harsh.js new file mode 100644 index 0000000..8096ac1 --- /dev/null +++ b/email-template-harsh.js @@ -0,0 +1,58 @@ +function harsh_email_template() { + const text_html = /* HTML */ `
+ Dzień dobry, w dniu ${getDate()} odwiedziłem stronę ${tab.url}. Strona ta + bez mojej zgody wysłała moje dane osobowe do następujących podmiotów: +
+ ${renderDataList()} ++ Informacje te są automatycznie wysyłane przez Państwa stronę przez + skrypty, które są na niej umieszczone. Pomimo faktu, że nie otrzymują + Państwo bezpośrednio i nie przechowują tych danych, w świetle RODO są + Państwo administratorem moich danych osobowych (utwierdza taki stan rzeczy + + wyrok TSUE w sprawie C‑40/17 ). W załączeniu przesyłam zrzuty ekranów prezentujące wysłane przez + Państwa stronę dane osobowe, wraz z ich adresatami. +
++ Dane te zostały przesłane bez mojej zgody i nastąpiło to zanim miałem w + ogóle szansę przeczytać Państwa politykę prywatności. Nie widzę zatem + przesłanki legalizującej takie przetwarzanie moich danych osobowych (na + pewno nie jest to przetwarzanie konieczne do wyświetlenia strony z + technicznego punktu widzenia). Jeżeli takie przesłanki legalizujące jednak + występują, proszę o ich wskazanie, + dla każdego z celów i podmiotów z osobna. +
++ Niniejszym zwracam się także z żądaniem wycofania przesłanych przez + Państwa stronę moich danych osobowych z baz wyżej wymienionych podmiotów + oraz przesłania potwierdzenia uwiarygadniającego pomyślne wycofanie tych + danych. Proszę też o przesłanie tożsamości podmiotów, które są + właścicielami wyżej wymienionych domen, abym mógł zapoznać się z ich + politykami prywatności. +
++ Proszę też o wysłanie kopii danych zebranych na mój temat i wysłanych do + wyżej wymienionych podmiotów. +
++ Apeluję także o wprowadzenie stosownych zmian na stronie tak, aby nie + pozostawiać cienia wątpliwości odnośnie tego, na mocy jakiej przesłanki + legalizującej dane są przetwarzane przez wspomniane podmioty trzecie, lub + tak, aby te dane po prostu nie były wysyłane. Pomoże to zachować + prywatność innym użytkownikom Państwa strony. Polecam Państwa uwadze + oficjalne wytyczne EROD dotyczące zgody w kontekście RODO: + https://edpb.europa.eu/sites/default/files/files/file1/edpb_guidelines_202005_consent_pl.pdf + ). Aby na przykład zapobiec automatycznemu wysyłaniu historii przeglądania + do podmiotów trzecich przez Państwa stronę, można po prostu ustawić + odpowiednio treść nagłówka + + Referrer-Policy . +
`; + return text_html; +} diff --git a/email-template-polite.js b/email-template-polite.js new file mode 100644 index 0000000..1252fa0 --- /dev/null +++ b/email-template-polite.js @@ -0,0 +1,48 @@ +function polite_email_template() { + const text_html = /* HTML */ `+ Dzień dobry, w dniu ${getDate()} odwiedziłem stronę ${tab.url}. Strona ta + bez mojej zgody wysłała moje dane osobowe do następujących podmiotów: +
+ ${renderDataList()} + ++ Informacje te są automatycznie wysyłane przez Państwa stronę przez + skrypty, które są na niej umieszczone. Pomimo faktu, że nie otrzymują + Państwo bezpośrednio i nie przechowują tych danych, w świetle RODO są + Państwo administratorem moich danych osobowych (utwierdza taki stan rzeczy + + wyrok TSUE w sprawie C‑40/17 ). W załączeniu przesyłam zrzuty ekranów prezentujące wysłane przez + Państwa stronę dane osobowe, wraz z ich adresatami. +
++ Dane te zostały przesłane bez mojej zgody i nastąpiło to zanim miałem w + ogóle szansę przeczytać Państwa politykę prywatności. Nie widzę zatem + przesłanki legalizującej takie przetwarzanie moich danych osobowych (na + pewno nie jest to przetwarzanie konieczne do wyświetlenia strony z + technicznego punktu widzenia). Jeżeli takie przesłanki legalizujące jednak + występują, proszę o ich wskazanie, + dla każdego z celów i podmiotów z osobna. +
+ ++ Apeluję także o wprowadzenie stosownych zmian na stronie tak, aby nie + pozostawiać cienia wątpliwości odnośnie tego, na mocy jakiej przesłanki + legalizującej dane są przetwarzane przez wspomniane podmioty trzecie, lub + tak, aby te dane po prostu nie były wysyłane. Pomoże to zachować + prywatność innym użytkownikom Państwa strony. Polecam Państwa uwadze + oficjalne wytyczne EROD dotyczące zgody w kontekście RODO: + https://edpb.europa.eu/sites/default/files/files/file1/edpb_guidelines_202005_consent_pl.pdf + ). Aby na przykład zapobiec automatycznemu wysyłaniu historii przeglądania + do podmiotów trzecich przez Państwa stronę, można po prostu ustawić + odpowiednio treść nagłówka + + Referrer-Policy . +
`; + return text_html; +} diff --git a/popup.html b/popup.html index 2d2ea73..689799c 100644 --- a/popup.html +++ b/popup.html @@ -1,5 +1,9 @@ - + + + + + diff --git a/popup.js b/popup.js index 7807fcc..367df1b 100644 --- a/popup.js +++ b/popup.js @@ -23,6 +23,12 @@ function sortByShorthost(tabdata) { }); } +function extractAllCookies(requests) { + return Array.from(new Set(requests.map((request) => request.cookie))).filter( + (cookie) => cookie !== undefined + ); +} + function render(memory = {}) { let output_txt = ""; if (!memory?.[tabid]) { @@ -30,11 +36,26 @@ function render(memory = {}) { output.innerHTML = output_txt; return; } + output_txt = /* HTML */ `${cookie}
- Dzień dobry, w dniu ${getDate()} odwiedziłem stronę ${tab.url}. Strona ta - bez mojej zgody wysłała moje dane osobowe do następujących podmiotów: -
-- Informacje te są automatycznie wysyłane przez Państwa stronę przez - skrypty, które są na niej umieszczone. Pomimo faktu, że nie otrzymują - Państwo bezpośrednio i nie przechowują tych danych, w świetle RODO są - Państwo administratorem moich danych osobowych (utwierdza taki stan rzeczy - - wyrok TSUE w sprawie C‑40/17 ). W załączeniu przesyłam zrzuty ekranów prezentujące wysłane przez - Państwa stronę dane osobowe, wraz z ich adresatami. -
-- Dane te zostały przesłane bez mojej zgody i nastąpiło to zanim miałem w - ogóle szansę przeczytać Państwa politykę prywatności. Nie widzę zatem - przesłanki legalizującej takie przetwarzanie moich danych osobowych (na - pewno nie jest to przetwarzanie konieczne do wyświetlenia strony z punktu - widzenia technicznego). Jeżeli takie przesłanki legalizujące jednak - występują, proszę o ich wskazanie, dla każdego z celów i podmiotów z - osobna. -
-- Niniejszym zwracam się także z żądaniem wycofania przesłanych przez - Państwa stronę moich danych osobowych z baz wyżej wymienionych podmiotów - oraz przesłania potwierdzenia uwiarygadniającego pomyślne wycofanie tych - danych. Proszę też o przesłanie tożsamości podmiotów, które są - właścicielami wyżej wymienionych domen, abym mógł zapoznać się z ich - politykami prywatności. -
-- Proszę też o wysłanie kopii danych zebranych na mój temat i wysłanych do - wyżej wymienionych podmiotów. -
-- Apeluję także o wprowadzenie stosownych zmian na stronie tak, aby nie - pozostawiać cienia wątpliwości odnośnie tego, na mocy jakiej przesłanki - legalizującej dane są przetwarzane przez wspomniane podmioty trzecie, lub - tak, aby te dane po prostu nie były wysyłane. Pomoże to zachować - prywatność innym użytkownikom Państwa strony. -
`; +copy_polite.onclick = () => { + const text_html = polite_email_template(); navigator.clipboard.write([ new ClipboardItem({ "text/plain": text_html, "text/html": text_html }), ]); diff --git a/problematic.js b/problematic.js index a9fc3f3..c239b22 100644 --- a/problematic.js +++ b/problematic.js @@ -2,10 +2,31 @@ console.log("PROBLEMATIC REQUESTS"); let memory = {}; +function gethost(url) { + return new URL(request.url).host; +} + +function getshorthost(host) { + console.log("getshort", host); + return host.split(".").slice(-2).join("."); +} + // const isThirdParty = (arg) => arg.urlClassification.thirdParty.length > 0; async function isThirdParty(request) { const request_url = new URL(request.url); const origin_url = new URL(await getOrigin(request)); + /* console.log(request_url.ho, origin_url, request_url.includes(origin_url)); */ + console.log( + request_url.host, + origin_url.host, + request_url.host.includes(origin_url.host) + ); + if (request_url.host.includes(origin_url.host)) { + return false; + } + if (getshorthost(request_url.host) == getshorthost(origin_url.host)) { + return false; + } return ( request_url.origin != origin_url.origin || request.urlClassification.thirdParty.length > 0 @@ -45,13 +66,15 @@ browser.webRequest.onBeforeSendHeaders.addListener( if (!memory[request.tabId]) { memory[request.tabId] = {}; } - const shorthost = new URL(request.url).host - .match(/((\.[^.]+){2}$)/)[0] - .slice(1); + const shorthost = getshorthost(new URL(request.url).host); if (!memory[request.tabId][shorthost]) { memory[request.tabId][shorthost] = []; } - memory[request.tabId][shorthost].push({ url: request.url, has_cookie }); + memory[request.tabId][shorthost].push({ + url: request.url, + has_cookie, + cookie: request.requestHeaders.find((h) => h.name == "Cookie")?.value, + }); } }, { urls: ["