Compare commits
4 Commits
361546bcd4
...
69ac59fb72
Author | SHA1 | Date | |
---|---|---|---|
69ac59fb72 | |||
b799592213 | |||
467448ddb0 | |||
922d5da074 |
11
package-lock.json
generated
11
package-lock.json
generated
@ -10,6 +10,7 @@
|
|||||||
"license": "ISC",
|
"license": "ISC",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@iabtcf/core": "^1.3.1",
|
"@iabtcf/core": "^1.3.1",
|
||||||
|
"@types/proposal-relative-indexing-method": "^0.1.0",
|
||||||
"esbuild": "^0.13.3",
|
"esbuild": "^0.13.3",
|
||||||
"events": "^3.3.0",
|
"events": "^3.3.0",
|
||||||
"react": "^17.0.2",
|
"react": "^17.0.2",
|
||||||
@ -39,6 +40,11 @@
|
|||||||
"integrity": "sha512-rZ5drC/jWjrArrS8BR6SIr4cWpW09RNTYt9AMZo3Jwwif+iacXAqgVjm0B0Bv/S1jhDXKHqRVNCbACkJ89RAnQ==",
|
"integrity": "sha512-rZ5drC/jWjrArrS8BR6SIr4cWpW09RNTYt9AMZo3Jwwif+iacXAqgVjm0B0Bv/S1jhDXKHqRVNCbACkJ89RAnQ==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"node_modules/@types/proposal-relative-indexing-method": {
|
||||||
|
"version": "0.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@types/proposal-relative-indexing-method/-/proposal-relative-indexing-method-0.1.0.tgz",
|
||||||
|
"integrity": "sha512-qZHcVIMT0+apQmIPSPG50ksZujLkBE1rYQXVBswF9CcwCGij1zIJemXNdfarqQo5wAhA1K+Y0/h0n5bV8dK7sQ=="
|
||||||
|
},
|
||||||
"node_modules/@types/react": {
|
"node_modules/@types/react": {
|
||||||
"version": "17.0.26",
|
"version": "17.0.26",
|
||||||
"resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.26.tgz",
|
"resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.26.tgz",
|
||||||
@ -386,6 +392,11 @@
|
|||||||
"integrity": "sha512-rZ5drC/jWjrArrS8BR6SIr4cWpW09RNTYt9AMZo3Jwwif+iacXAqgVjm0B0Bv/S1jhDXKHqRVNCbACkJ89RAnQ==",
|
"integrity": "sha512-rZ5drC/jWjrArrS8BR6SIr4cWpW09RNTYt9AMZo3Jwwif+iacXAqgVjm0B0Bv/S1jhDXKHqRVNCbACkJ89RAnQ==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"@types/proposal-relative-indexing-method": {
|
||||||
|
"version": "0.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@types/proposal-relative-indexing-method/-/proposal-relative-indexing-method-0.1.0.tgz",
|
||||||
|
"integrity": "sha512-qZHcVIMT0+apQmIPSPG50ksZujLkBE1rYQXVBswF9CcwCGij1zIJemXNdfarqQo5wAhA1K+Y0/h0n5bV8dK7sQ=="
|
||||||
|
},
|
||||||
"@types/react": {
|
"@types/react": {
|
||||||
"version": "17.0.26",
|
"version": "17.0.26",
|
||||||
"resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.26.tgz",
|
"resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.26.tgz",
|
||||||
|
@ -16,6 +16,7 @@
|
|||||||
"license": "ISC",
|
"license": "ISC",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@iabtcf/core": "^1.3.1",
|
"@iabtcf/core": "^1.3.1",
|
||||||
|
"@types/proposal-relative-indexing-method": "^0.1.0",
|
||||||
"esbuild": "^0.13.3",
|
"esbuild": "^0.13.3",
|
||||||
"events": "^3.3.0",
|
"events": "^3.3.0",
|
||||||
"react": "^17.0.2",
|
"react": "^17.0.2",
|
||||||
|
@ -22,7 +22,7 @@ export default function DomainSummary({
|
|||||||
}) {
|
}) {
|
||||||
return (
|
return (
|
||||||
<li>
|
<li>
|
||||||
Właściciel domeny <strong>{cluster.id}</strong> otrzymał:{" "}
|
Właścicielowi domeny <strong>{cluster.id}</strong> zostały ujawnione:{" "}
|
||||||
<ul>
|
<ul>
|
||||||
<li>Mój adres IP</li>
|
<li>Mój adres IP</li>
|
||||||
{cluster
|
{cluster
|
||||||
|
@ -94,6 +94,48 @@ export default function EmailTemplate2Controls({
|
|||||||
</option>
|
</option>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
|
{config.popup_type !== "none" ? (
|
||||||
|
<div>
|
||||||
|
<input
|
||||||
|
type="checkbox"
|
||||||
|
id="popup_mentions_passive_consent"
|
||||||
|
checked={config.popup_mentions_passive_consent}
|
||||||
|
onChange={(e) =>
|
||||||
|
setConfig((v) => ({
|
||||||
|
...v,
|
||||||
|
popup_mentions_passive_consent: e.target.checked,
|
||||||
|
}))
|
||||||
|
}
|
||||||
|
/>
|
||||||
|
<label htmlFor="popup_mentions_passive_consent">
|
||||||
|
okienko wspomina o pasywnej zgodzie (np. „korzystając ze strony
|
||||||
|
wyrażasz zgodę”)
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
) : (
|
||||||
|
""
|
||||||
|
)}
|
||||||
|
{config.popup_mentions_passive_consent ? (
|
||||||
|
<div>
|
||||||
|
<label htmlFor="popup_passive_consent_text">
|
||||||
|
Jak okienko próbuje wmówić Ci, że wyrażasz zgodę? Przeklej z treści
|
||||||
|
okienka:
|
||||||
|
</label>
|
||||||
|
<input
|
||||||
|
id="popup_passive_consent_text"
|
||||||
|
placeholder="Korzystając ze strony wyrażasz zgodę"
|
||||||
|
value={config.popup_passive_consent_text}
|
||||||
|
onChange={(e) =>
|
||||||
|
setConfig((v) => ({
|
||||||
|
...v,
|
||||||
|
popup_passive_consent_text: e.target.value,
|
||||||
|
}))
|
||||||
|
}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
) : (
|
||||||
|
""
|
||||||
|
)}
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -10,6 +10,8 @@ export type EmailTemplate2Config = {
|
|||||||
popup_action: "ignored" | "accepted";
|
popup_action: "ignored" | "accepted";
|
||||||
popup_screenshot_base64: string | null;
|
popup_screenshot_base64: string | null;
|
||||||
popup_accept_all_text: string;
|
popup_accept_all_text: string;
|
||||||
|
popup_mentions_passive_consent: boolean;
|
||||||
|
popup_passive_consent_text: string;
|
||||||
};
|
};
|
||||||
|
|
||||||
function ClusterRangeSummary({ cluster }: { cluster: RequestCluster }) {
|
function ClusterRangeSummary({ cluster }: { cluster: RequestCluster }) {
|
||||||
@ -69,6 +71,8 @@ export default function EmailTemplate2({
|
|||||||
popup_action: "ignored",
|
popup_action: "ignored",
|
||||||
popup_screenshot_base64: null,
|
popup_screenshot_base64: null,
|
||||||
popup_accept_all_text: "Zaakceptuj wszystkie",
|
popup_accept_all_text: "Zaakceptuj wszystkie",
|
||||||
|
popup_mentions_passive_consent: false,
|
||||||
|
popup_passive_consent_text: "",
|
||||||
});
|
});
|
||||||
|
|
||||||
const visited_url = entries[0].request.originalURL;
|
const visited_url = entries[0].request.originalURL;
|
||||||
@ -106,9 +110,9 @@ export default function EmailTemplate2({
|
|||||||
{config.popup_action === "ignored"
|
{config.popup_action === "ignored"
|
||||||
? /* HTML */ `Nie kliknąłem żadnego przycisku w tym okienku. W
|
? /* HTML */ `Nie kliknąłem żadnego przycisku w tym okienku. W
|
||||||
szczególności nie kliknąłem przycisku
|
szczególności nie kliknąłem przycisku
|
||||||
„${config.popup_accept_all_text}”`
|
„${config.popup_accept_all_text}”.`
|
||||||
: config.popup_action === "accepted"
|
: config.popup_action === "accepted"
|
||||||
? `Kliknąlem na widoczną w tym okienku opcję „${config.popup_accept_all_text}”`
|
? `Kliknąlem na widoczną w tym okienku opcję „${config.popup_accept_all_text}”.`
|
||||||
: ""}
|
: ""}
|
||||||
</p>
|
</p>
|
||||||
</>
|
</>
|
||||||
@ -139,8 +143,8 @@ export default function EmailTemplate2({
|
|||||||
""
|
""
|
||||||
)}
|
)}
|
||||||
<p>
|
<p>
|
||||||
W załączeniu przesyłam zrzuty ekranu, które dokumentują fakt wysłania
|
W załączeniu przesyłam część zrzutów ekranu dokumentujących fakt
|
||||||
tych danych przez Państwa stronę.{" "}
|
wysłania tych danych przez Państwa stronę.{" "}
|
||||||
</p>
|
</p>
|
||||||
<h3>Podstawa prawna</h3>
|
<h3>Podstawa prawna</h3>
|
||||||
<p>
|
<p>
|
||||||
@ -174,25 +178,51 @@ export default function EmailTemplate2({
|
|||||||
<p>
|
<p>
|
||||||
W przypadku opisywanej przeze mnie mojej wizyty na Państwa stronie nie
|
W przypadku opisywanej przeze mnie mojej wizyty na Państwa stronie nie
|
||||||
ma zastosowania „Zgoda”, gdyż{" "}
|
ma zastosowania „Zgoda”, gdyż{" "}
|
||||||
{config.popup_action === "ignored"
|
{config.popup_action === "ignored" ? (
|
||||||
? /* HTML */ `nie wyrażałem żadnej zgody na takie przetwarzanie moich
|
<>
|
||||||
danych —w szczególności nie kliknąłem przycisku
|
nie wyrażałem żadnej zgody na takie przetwarzanie moich danych
|
||||||
„${config.popup_accept_all_text}”`
|
{config.popup_type === "consent" ? (
|
||||||
: /* HTML */ `o ile po wejściu na stronę wcisnąłem w wyskakującym
|
<>
|
||||||
okienku przycisk „${config.popup_accept_all_text}”, o tyle nie
|
— w szczególności nie kliknąłem przycisku „
|
||||||
stanowi to według mnie ważnej w świetle RODO zgody, gdyż brakowało w
|
{config.popup_accept_all_text}”
|
||||||
tym okienku równie łatwo osiągalnego przycisku, którego kliknięcie
|
</>
|
||||||
skutkowałoby zasygnalizowaniem braku mojej zgody na takie
|
) : (
|
||||||
przetwarzanie moich danych. Mówiąc wprost — wyrażenie „zgody”
|
""
|
||||||
było łatwiejsze niż jej niewyrażenie. Niewyrażenie zgody wiąże się z
|
)}
|
||||||
negatywną konsekwencją konieczności przechodzenia przez dodatkowe
|
.
|
||||||
kroki w wyskakującym okienku. Zatem tak otrzymana przez Państwo moja
|
</>
|
||||||
„zgoda” nie jest poprawną podstawą prawną do przetwarzania moich
|
) : (
|
||||||
danych osobowych, gdyż nie spełnia warunku dobrowolności
|
/* HTML */ `o ile po wejściu na stronę wcisnąłem w wyskakującym
|
||||||
wspomnianego w Art. 4. pkt 11. RODO`}
|
okienku przycisk „${config.popup_accept_all_text}”, o tyle nie stanowi
|
||||||
. Za zgodę nie można też uznać posiadania włączonej obsługi cookies w
|
to według mnie ważnej w świetle RODO zgody, gdyż brakowało w tym
|
||||||
|
okienku równie łatwo osiągalnego przycisku, którego kliknięcie
|
||||||
|
skutkowałoby zasygnalizowaniem braku mojej zgody na takie
|
||||||
|
przetwarzanie moich danych. Mówiąc wprost — wyrażenie „zgody”
|
||||||
|
było łatwiejsze niż jej niewyrażenie. Niewyrażenie zgody wiąże się z
|
||||||
|
negatywną konsekwencją konieczności przechodzenia przez dodatkowe
|
||||||
|
kroki w wyskakującym okienku. Zatem tak otrzymana przez Państwo moja
|
||||||
|
„zgoda” nie jest poprawną podstawą prawną do przetwarzania moich
|
||||||
|
danych osobowych, gdyż nie spełnia warunku dobrowolności wspomnianego
|
||||||
|
w Art. 4. pkt 11. RODO.`
|
||||||
|
)}{" "}
|
||||||
|
Za zgodę nie można też uznać posiadania włączonej obsługi cookies w
|
||||||
przeglądarce, jakichkolwiek innych ustawień przeglądarki, ani pasywnych
|
przeglądarce, jakichkolwiek innych ustawień przeglądarki, ani pasywnych
|
||||||
działań z mojej strony (np. „kontynuowanie korzystania ze strony”).
|
działań z mojej strony (np. „kontynuowanie korzystania ze strony”)
|
||||||
|
{config.popup_mentions_passive_consent ? (
|
||||||
|
<>
|
||||||
|
{" "}
|
||||||
|
— nieprawdą więc jest zawarty na Państwa stronie komunikat „
|
||||||
|
{config.popup_passive_consent_text.trim()}” (por. paragraf 97.{" "}
|
||||||
|
<a href="https://edpb.europa.eu/sites/default/files/files/file1/edpb_guidelines_202005_consent_pl.pdf">
|
||||||
|
oficjalnych wytycznych EROD dotyczących zgody na mocy
|
||||||
|
rozporządzenia 2016/679
|
||||||
|
</a>
|
||||||
|
)
|
||||||
|
</>
|
||||||
|
) : (
|
||||||
|
""
|
||||||
|
)}
|
||||||
|
.
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
W mojej ocenie „Niezbędność“ nie ma zastosowania co do opisanych powyżej
|
W mojej ocenie „Niezbędność“ nie ma zastosowania co do opisanych powyżej
|
||||||
|
@ -22,7 +22,9 @@ function handleNewFile(
|
|||||||
}
|
}
|
||||||
|
|
||||||
function generateFakeHAR(entries: StolenDataEntry[]) {
|
function generateFakeHAR(entries: StolenDataEntry[]) {
|
||||||
const requests = entries.map((entry) => entry.request);
|
const requests = entries
|
||||||
|
.sort((entry1, entry2) => entry2.getPriority() - entry1.getPriority())
|
||||||
|
.map((entry) => entry.request);
|
||||||
return {
|
return {
|
||||||
log: {
|
log: {
|
||||||
version: "1.2",
|
version: "1.2",
|
||||||
|
8
util.ts
8
util.ts
@ -32,12 +32,12 @@ export type Request = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
export function getshorthost(host: string) {
|
export function getshorthost(host: string) {
|
||||||
return host
|
const parts = host
|
||||||
.replace(/^.*:\/\//, "")
|
.replace(/^.*:\/\//, "")
|
||||||
.replace(/\/.*$/, "")
|
.replace(/\/.*$/, "")
|
||||||
.split(".")
|
.split(".");
|
||||||
.slice(-2)
|
|
||||||
.join(".");
|
return parts.slice(parts.at(-2).length > 3 ? -2 : -3).join(".");
|
||||||
}
|
}
|
||||||
|
|
||||||
export function useEmitter(
|
export function useEmitter(
|
||||||
|
Loading…
x
Reference in New Issue
Block a user