Dodanie łagodniejszej wersji maila
This commit is contained in:
		
							parent
							
								
									e7dc46c45f
								
							
						
					
					
						commit
						bb86842c92
					
				
							
								
								
									
										58
									
								
								email-template-harsh.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										58
									
								
								email-template-harsh.js
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,58 @@
 | 
			
		||||
function harsh_email_template() {
 | 
			
		||||
  const text_html = /* HTML */ `<p>
 | 
			
		||||
      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:
 | 
			
		||||
    </p>
 | 
			
		||||
    ${renderDataList()}
 | 
			
		||||
    <p>
 | 
			
		||||
      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
 | 
			
		||||
      <a
 | 
			
		||||
        href="https://curia.europa.eu/juris/document/document.jsf?text=&docid=216555&pageIndex=0&doclang=PL&mode=lst&dir=&occ=first&part=1&cid=3313819"
 | 
			
		||||
      >
 | 
			
		||||
        wyrok TSUE w sprawie C‑40/17 </a
 | 
			
		||||
      >). W załączeniu przesyłam zrzuty ekranów prezentujące wysłane przez
 | 
			
		||||
      Państwa stronę dane osobowe, wraz z ich adresatami.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
      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,
 | 
			
		||||
      <strong> dla każdego z celów i podmiotów z osobna</strong>.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
      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.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
      Proszę też o wysłanie kopii danych zebranych na mój temat i wysłanych do
 | 
			
		||||
      wyżej wymienionych podmiotów.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
      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
 | 
			
		||||
      <a
 | 
			
		||||
        href="https://developer.mozilla.org/pl/docs/Web/HTTP/Headers/Referrer-Policy"
 | 
			
		||||
      >
 | 
			
		||||
        Referrer-Policy </a
 | 
			
		||||
      >.
 | 
			
		||||
    </p> `;
 | 
			
		||||
  return text_html;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										48
									
								
								email-template-polite.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										48
									
								
								email-template-polite.js
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,48 @@
 | 
			
		||||
function polite_email_template() {
 | 
			
		||||
  const text_html = /* HTML */ `<p>
 | 
			
		||||
      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:
 | 
			
		||||
    </p>
 | 
			
		||||
    ${renderDataList()}
 | 
			
		||||
 | 
			
		||||
    <p>
 | 
			
		||||
      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
 | 
			
		||||
      <a
 | 
			
		||||
        href="https://curia.europa.eu/juris/document/document.jsf?text=&docid=216555&pageIndex=0&doclang=PL&mode=lst&dir=&occ=first&part=1&cid=3313819"
 | 
			
		||||
      >
 | 
			
		||||
        wyrok TSUE w sprawie C‑40/17 </a
 | 
			
		||||
      >). W załączeniu przesyłam zrzuty ekranów prezentujące wysłane przez
 | 
			
		||||
      Państwa stronę dane osobowe, wraz z ich adresatami.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
      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,
 | 
			
		||||
      <strong> dla każdego z celów i podmiotów z osobna</strong>.
 | 
			
		||||
    </p>
 | 
			
		||||
 | 
			
		||||
    <p>
 | 
			
		||||
      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
 | 
			
		||||
      <a
 | 
			
		||||
        href="https://developer.mozilla.org/pl/docs/Web/HTTP/Headers/Referrer-Policy"
 | 
			
		||||
      >
 | 
			
		||||
        Referrer-Policy </a
 | 
			
		||||
      >.
 | 
			
		||||
    </p> `;
 | 
			
		||||
  return text_html;
 | 
			
		||||
}
 | 
			
		||||
@ -1,5 +1,9 @@
 | 
			
		||||
<meta charset="utf-8">
 | 
			
		||||
<button id="clean">clean memory</button>
 | 
			
		||||
<button id="copy">copy email template</button>
 | 
			
		||||
<button id="copy_harsh">copy harsh email template</button>
 | 
			
		||||
<button id="copy_polite">copy polite email template</button>
 | 
			
		||||
<div id="output"></div>
 | 
			
		||||
<script src="popup.js"></script>
 | 
			
		||||
<script src="render-data-list.js"></script>
 | 
			
		||||
<script src="email-template-harsh.js"></script>
 | 
			
		||||
<script src="email-template-polite.js"></script>
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										95
									
								
								popup.js
									
									
									
									
									
								
							
							
						
						
									
										95
									
								
								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 */ `<h2>
 | 
			
		||||
      Część Twojej historii przeglądania została wysłana przez stronę ${tab.url}
 | 
			
		||||
      do:
 | 
			
		||||
    </h2>
 | 
			
		||||
    <ul></ul>`;
 | 
			
		||||
  sortByShorthost(memory[tabid]).forEach(([shorthost, requests]) => {
 | 
			
		||||
    output_txt += /* HTML */ `${shorthost} ${
 | 
			
		||||
      atLeastOneCookiedRequest(requests) ? "🍪" : ""
 | 
			
		||||
    }</br>`;
 | 
			
		||||
    output_txt += /* HTML */ `
 | 
			
		||||
      <li>
 | 
			
		||||
        ${shorthost}
 | 
			
		||||
        ${atLeastOneCookiedRequest(requests)
 | 
			
		||||
          ? /*  HTML */ `🍪 <ul>
 | 
			
		||||
            ${extractAllCookies(requests)
 | 
			
		||||
              .map((cookie) => `<li><code>${cookie}</code></li>`)
 | 
			
		||||
              .join("\n")}
 | 
			
		||||
          </ul>`
 | 
			
		||||
          : ""}
 | 
			
		||||
      </li>
 | 
			
		||||
    `;
 | 
			
		||||
  });
 | 
			
		||||
  output_txt += "</ul>";
 | 
			
		||||
  output.innerHTML = output_txt;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -54,65 +75,15 @@ function getDate() {
 | 
			
		||||
  return new Date().toISOString().split("T")[0];
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
copy.onclick = () => {
 | 
			
		||||
  const text_html = /* HTML */ `<p>
 | 
			
		||||
      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:
 | 
			
		||||
    </p>
 | 
			
		||||
    <ul>
 | 
			
		||||
      ${sortByShorthost(memory[tabid])
 | 
			
		||||
        .map(
 | 
			
		||||
          ([shorthost, requests]) => /* HTML */ `<li>
 | 
			
		||||
            Właściciel domeny <i>${shorthost}</i> otrzymał mój adres IP i część
 | 
			
		||||
            mojej historii
 | 
			
		||||
            przeglądania${atLeastOneCookiedRequest(requests)
 | 
			
		||||
              ? " <strong>opatrzoną sztucznie nadanym mi ID z Cookies</strong>"
 | 
			
		||||
              : ""};
 | 
			
		||||
          </li>`
 | 
			
		||||
        )
 | 
			
		||||
        .join("\n")}
 | 
			
		||||
    </ul>
 | 
			
		||||
 | 
			
		||||
    <p>
 | 
			
		||||
      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
 | 
			
		||||
      <a
 | 
			
		||||
        href="https://curia.europa.eu/juris/document/document.jsf?text=&docid=216555&pageIndex=0&doclang=PL&mode=lst&dir=&occ=first&part=1&cid=3313819"
 | 
			
		||||
      >
 | 
			
		||||
        wyrok TSUE w sprawie C‑40/17 </a
 | 
			
		||||
      >). W załączeniu przesyłam zrzuty ekranów prezentujące wysłane przez
 | 
			
		||||
      Państwa stronę dane osobowe, wraz z ich adresatami.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
      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.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
      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.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
      Proszę też o wysłanie kopii danych zebranych na mój temat i wysłanych do
 | 
			
		||||
      wyżej wymienionych podmiotów.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
      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.
 | 
			
		||||
    </p> `;
 | 
			
		||||
copy_harsh.onclick = () => {
 | 
			
		||||
  const text_html = harsh_email_template();
 | 
			
		||||
  navigator.clipboard.write([
 | 
			
		||||
    new ClipboardItem({ "text/plain": text_html, "text/html": text_html }),
 | 
			
		||||
  ]);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
copy_polite.onclick = () => {
 | 
			
		||||
  const text_html = polite_email_template();
 | 
			
		||||
  navigator.clipboard.write([
 | 
			
		||||
    new ClipboardItem({ "text/plain": text_html, "text/html": text_html }),
 | 
			
		||||
  ]);
 | 
			
		||||
 | 
			
		||||
@ -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: ["<all_urls>"] },
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										15
									
								
								render-data-list.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								render-data-list.js
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,15 @@
 | 
			
		||||
function renderDataList() {
 | 
			
		||||
  return /* HTML */ ` <ul>
 | 
			
		||||
    ${sortByShorthost(memory[tabid])
 | 
			
		||||
      .map(
 | 
			
		||||
        ([shorthost, requests]) => /* HTML */ `<li>
 | 
			
		||||
          właściciel domeny <i>${shorthost}</i> otrzymał mój adres IP i część
 | 
			
		||||
          mojej historii
 | 
			
		||||
          przeglądania${atLeastOneCookiedRequest(requests)
 | 
			
		||||
            ? " <strong>opatrzoną sztucznie nadanym mi ID z Cookies</strong>"
 | 
			
		||||
            : ""};
 | 
			
		||||
        </li>`
 | 
			
		||||
      )
 | 
			
		||||
      .join("\n")}
 | 
			
		||||
  </ul>`;
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user