privalint 0.6.0 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/NOTICE +25 -0
- package/README.de.md +26 -15
- package/README.md +34 -25
- package/dist/assessment.d.ts +1 -1
- package/dist/assessment.js +49 -21
- package/dist/assessment.js.map +1 -1
- package/dist/capture.d.ts +6 -1
- package/dist/capture.js +28 -6
- package/dist/capture.js.map +1 -1
- package/dist/cli.js +5 -1
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +1 -0
- package/dist/config.js +3 -0
- package/dist/config.js.map +1 -1
- package/dist/consent.d.ts +7 -1
- package/dist/consent.js +224 -5
- package/dist/consent.js.map +1 -1
- package/dist/coverage.js +8 -1
- package/dist/coverage.js.map +1 -1
- package/dist/data/open-cookie-database.d.ts +10 -0
- package/dist/data/open-cookie-database.js +1498 -0
- package/dist/data/open-cookie-database.js.map +1 -0
- package/dist/data/third-parties.js +8 -0
- package/dist/data/third-parties.js.map +1 -1
- package/dist/data/trackers.d.ts +9 -2
- package/dist/data/trackers.js +32 -1
- package/dist/data/trackers.js.map +1 -1
- package/dist/diagnostics.d.ts +10 -1
- package/dist/diagnostics.js +62 -13
- package/dist/diagnostics.js.map +1 -1
- package/dist/legal.d.ts +1 -1
- package/dist/legal.js +21 -3
- package/dist/legal.js.map +1 -1
- package/dist/network.d.ts +13 -1
- package/dist/network.js +72 -10
- package/dist/network.js.map +1 -1
- package/dist/observations.d.ts +2 -2
- package/dist/observations.js +3 -2
- package/dist/observations.js.map +1 -1
- package/dist/report-contract.d.ts +2 -2
- package/dist/report-contract.js +2 -2
- package/dist/report-contract.js.map +1 -1
- package/dist/reporters/capture.js +20 -0
- package/dist/reporters/capture.js.map +1 -1
- package/dist/rules/impressum-link.js +1 -1
- package/dist/rules/impressum-link.js.map +1 -1
- package/dist/rules/index.d.ts +2 -1
- package/dist/rules/index.js +3 -1
- package/dist/rules/index.js.map +1 -1
- package/dist/rules/privacy-policy-link.js +1 -1
- package/dist/rules/privacy-policy-link.js.map +1 -1
- package/dist/rules/tracker-hits.d.ts +3 -2
- package/dist/rules/tracker-hits.js +1 -2
- package/dist/rules/tracker-hits.js.map +1 -1
- package/dist/rules/trackers-after-settings.d.ts +2 -0
- package/dist/rules/trackers-after-settings.js +42 -0
- package/dist/rules/trackers-after-settings.js.map +1 -0
- package/dist/scan-options.d.ts +5 -0
- package/dist/scan-options.js.map +1 -1
- package/dist/scanner.js +42 -7
- package/dist/scanner.js.map +1 -1
- package/dist/types.d.ts +40 -6
- package/dist/url.d.ts +7 -3
- package/dist/url.js +18 -5
- package/dist/url.js.map +1 -1
- package/package.json +6 -3
- package/schemas/report-1.2.0.schema.json +857 -0
- package/schemas/report-1.3.0.schema.json +912 -0
- package/schemas/sarif-properties-1.2.0.schema.json +834 -0
- package/schemas/sarif-properties-1.3.0.schema.json +888 -0
package/dist/network.js
CHANGED
|
@@ -51,6 +51,22 @@ function failureKind(error, signal, timeout) {
|
|
|
51
51
|
return 'timeout';
|
|
52
52
|
return error instanceof NetworkError ? error.kind : classifyLoadError(error);
|
|
53
53
|
}
|
|
54
|
+
/**
|
|
55
|
+
* Reports requests the page cancelled itself, from CDP Network.loadingFailed with canceled.
|
|
56
|
+
* The id is the Network request id, which Fetch.requestPaused also carries as networkId.
|
|
57
|
+
*/
|
|
58
|
+
export async function watchPageCancellations(session, onCancel) {
|
|
59
|
+
const urls = new Map();
|
|
60
|
+
session.on('Network.requestWillBeSent', (event) => urls.set(event.requestId, event.request.url));
|
|
61
|
+
session.on('Network.loadingFinished', (event) => urls.delete(event.requestId));
|
|
62
|
+
session.on('Network.loadingFailed', (event) => {
|
|
63
|
+
const url = urls.get(event.requestId);
|
|
64
|
+
urls.delete(event.requestId);
|
|
65
|
+
if (event.canceled === true && url !== undefined)
|
|
66
|
+
onCancel(event.requestId, url);
|
|
67
|
+
});
|
|
68
|
+
await session.send('Network.enable');
|
|
69
|
+
}
|
|
54
70
|
/** Chromium Fetch interception includes redirect hops that Playwright route() auto-continues. */
|
|
55
71
|
export class ControlledNetwork {
|
|
56
72
|
adapter;
|
|
@@ -60,6 +76,8 @@ export class ControlledNetwork {
|
|
|
60
76
|
queue = [];
|
|
61
77
|
tasks = new Set();
|
|
62
78
|
sessions = new Map();
|
|
79
|
+
/** Adapter work in progress by Network request id, so a page cancel can stop it. */
|
|
80
|
+
inflight = new Map();
|
|
63
81
|
active = 0;
|
|
64
82
|
admitted = 0;
|
|
65
83
|
closed = false;
|
|
@@ -108,6 +126,20 @@ export class ControlledNetwork {
|
|
|
108
126
|
this.queue.push(request);
|
|
109
127
|
this.pump();
|
|
110
128
|
});
|
|
129
|
+
await watchPageCancellations(session, (networkId, url) => {
|
|
130
|
+
this.diagnostics.cancelledByPage(url);
|
|
131
|
+
const work = this.inflight.get(networkId);
|
|
132
|
+
if (work !== undefined) {
|
|
133
|
+
work.cancelled = true;
|
|
134
|
+
work.controller.abort();
|
|
135
|
+
return;
|
|
136
|
+
}
|
|
137
|
+
// Still waiting for a slot: drop it so the adapter is never asked for it.
|
|
138
|
+
const index = this.queue.findIndex((queued) => queued.event.networkId === networkId);
|
|
139
|
+
const [queued] = index === -1 ? [] : this.queue.splice(index, 1);
|
|
140
|
+
if (queued !== undefined)
|
|
141
|
+
void this.release(queued);
|
|
142
|
+
});
|
|
111
143
|
await session.send('Fetch.enable', {
|
|
112
144
|
patterns: [{ urlPattern: '*', requestStage: 'Request' }],
|
|
113
145
|
});
|
|
@@ -130,8 +162,13 @@ export class ControlledNetwork {
|
|
|
130
162
|
const { event, session, redirects, redirectCounts } = intercepted;
|
|
131
163
|
const { request } = event;
|
|
132
164
|
const controller = new AbortController();
|
|
165
|
+
const work = { controller, cancelled: false };
|
|
166
|
+
if (event.networkId !== undefined)
|
|
167
|
+
this.inflight.set(event.networkId, work);
|
|
133
168
|
const timeout = AbortSignal.timeout(this.limits.requestTimeoutMs);
|
|
134
169
|
const signal = AbortSignal.any([this.signal, timeout, controller.signal]);
|
|
170
|
+
let response;
|
|
171
|
+
let body;
|
|
135
172
|
try {
|
|
136
173
|
if (!/^https?:$/.test(new URL(request.url).protocol))
|
|
137
174
|
throw new NetworkError('unsupported-protocol');
|
|
@@ -139,7 +176,7 @@ export class ControlledNetwork {
|
|
|
139
176
|
throw new NetworkError('resource-limit', 'redirects');
|
|
140
177
|
if (this.diagnostics.data.bytes >= this.limits.maxTotalBytes)
|
|
141
178
|
throw new NetworkError('resource-limit', 'total-bytes');
|
|
142
|
-
|
|
179
|
+
response = await withSignal(this.adapter({
|
|
143
180
|
url: request.url,
|
|
144
181
|
method: request.method,
|
|
145
182
|
headers: request.headers,
|
|
@@ -147,12 +184,29 @@ export class ControlledNetwork {
|
|
|
147
184
|
resourceType: event.resourceType.toLowerCase(),
|
|
148
185
|
signal,
|
|
149
186
|
}), signal);
|
|
150
|
-
|
|
187
|
+
body = await this.readBody(response.body, signal);
|
|
151
188
|
signal.throwIfAborted();
|
|
152
189
|
if (!Number.isInteger(response.status) || response.status < 200 || response.status > 599)
|
|
153
190
|
throw new NetworkError('browser-failure');
|
|
154
|
-
|
|
155
|
-
|
|
191
|
+
}
|
|
192
|
+
catch (error) {
|
|
193
|
+
// The page cancelled it: Diagnostics already has the reason, only release the request.
|
|
194
|
+
if (work.cancelled)
|
|
195
|
+
await this.release(intercepted);
|
|
196
|
+
else {
|
|
197
|
+
const kind = failureKind(error, this.signal, timeout);
|
|
198
|
+
await this.abort(intercepted, kind, error instanceof NetworkError ? error.limit : undefined, error instanceof NetworkError ? error.skippedReason : undefined);
|
|
199
|
+
}
|
|
200
|
+
return;
|
|
201
|
+
}
|
|
202
|
+
finally {
|
|
203
|
+
controller.abort();
|
|
204
|
+
if (event.networkId !== undefined)
|
|
205
|
+
this.inflight.delete(event.networkId);
|
|
206
|
+
}
|
|
207
|
+
if ([301, 302, 303, 307, 308].includes(response.status))
|
|
208
|
+
redirectCounts.set(event.requestId, redirects);
|
|
209
|
+
try {
|
|
156
210
|
await session.send('Fetch.fulfillRequest', {
|
|
157
211
|
requestId: event.requestId,
|
|
158
212
|
responseCode: response.status,
|
|
@@ -160,14 +214,22 @@ export class ControlledNetwork {
|
|
|
160
214
|
body: body.toString('base64'),
|
|
161
215
|
});
|
|
162
216
|
}
|
|
163
|
-
catch
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
controller.abort();
|
|
217
|
+
catch {
|
|
218
|
+
// Fulfilling fails when Chromium no longer holds the request: the page cancelled it, it
|
|
219
|
+
// navigated, or the context is closing. Playwright reports that request as failed, and
|
|
220
|
+
// Diagnostics classifies it there, so recording a reason here would count it twice.
|
|
221
|
+
await this.release(intercepted);
|
|
169
222
|
}
|
|
170
223
|
}
|
|
224
|
+
/**
|
|
225
|
+
* Lets a paused request go without a diagnostic of its own. `Failed`, not `Aborted`: Chromium
|
|
226
|
+
* marks ERR_ABORTED as canceled, which would look like the page cancelling it.
|
|
227
|
+
*/
|
|
228
|
+
async release(request) {
|
|
229
|
+
await request.session
|
|
230
|
+
.send('Fetch.failRequest', { requestId: request.event.requestId, errorReason: 'Failed' })
|
|
231
|
+
.catch(() => { });
|
|
232
|
+
}
|
|
171
233
|
async readBody(body, signal) {
|
|
172
234
|
const chunks = [];
|
|
173
235
|
let size = 0;
|
package/dist/network.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"network.js","sourceRoot":"","sources":["../src/network.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"network.js","sourceRoot":"","sources":["../src/network.ts"],"names":[],"mappings":"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"}
|
package/dist/observations.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { RecordedRequest } from './types.js';
|
|
2
2
|
/**
|
|
3
3
|
* Legacy records remain valid; failed, pending and HTTP-error responses are not loaded vendors.
|
|
4
|
-
* An omitted beacon
|
|
5
|
-
* tracker rules look for.
|
|
4
|
+
* An omitted beacon or a request the page cancelled itself still counts: the page tried to
|
|
5
|
+
* contact that host, which is what the tracker rules look for.
|
|
6
6
|
*/
|
|
7
7
|
export declare const observedRequests: (requests: readonly RecordedRequest[]) => RecordedRequest[];
|
package/dist/observations.js
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Legacy records remain valid; failed, pending and HTTP-error responses are not loaded vendors.
|
|
3
|
-
* An omitted beacon
|
|
4
|
-
* tracker rules look for.
|
|
3
|
+
* An omitted beacon or a request the page cancelled itself still counts: the page tried to
|
|
4
|
+
* contact that host, which is what the tracker rules look for.
|
|
5
5
|
*/
|
|
6
6
|
export const observedRequests = (requests) => requests.filter((request) => request.outcome === undefined ||
|
|
7
7
|
request.skippedReason === 'beacon' ||
|
|
8
|
+
request.skippedReason === 'cancelled-by-page' ||
|
|
8
9
|
(request.outcome === 'response' && (request.status ?? 200) < 400));
|
|
9
10
|
//# sourceMappingURL=observations.js.map
|
package/dist/observations.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"observations.js","sourceRoot":"","sources":["../src/observations.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,QAAoC,EAAqB,EAAE,CAC1F,QAAQ,CAAC,MAAM,CACb,CAAC,OAAO,EAAE,EAAE,CACV,OAAO,CAAC,OAAO,KAAK,SAAS;IAC7B,OAAO,CAAC,aAAa,KAAK,QAAQ;IAClC,CAAC,OAAO,CAAC,OAAO,KAAK,UAAU,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,CACpE,CAAC"}
|
|
1
|
+
{"version":3,"file":"observations.js","sourceRoot":"","sources":["../src/observations.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,QAAoC,EAAqB,EAAE,CAC1F,QAAQ,CAAC,MAAM,CACb,CAAC,OAAO,EAAE,EAAE,CACV,OAAO,CAAC,OAAO,KAAK,SAAS;IAC7B,OAAO,CAAC,aAAa,KAAK,QAAQ;IAClC,OAAO,CAAC,aAAa,KAAK,mBAAmB;IAC7C,CAAC,OAAO,CAAC,OAAO,KAAK,UAAU,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,CACpE,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export declare const REPORT_SCHEMA_VERSION = "1.
|
|
2
|
-
export declare const SUPPORTED_REPORT_SCHEMAS: readonly ['1.0.0',
|
|
1
|
+
export declare const REPORT_SCHEMA_VERSION = "1.3.0";
|
|
2
|
+
export declare const SUPPORTED_REPORT_SCHEMAS: readonly ['1.0.0', '1.1.0', '1.2.0', "1.3.0"];
|
|
3
3
|
export type ReportSchemaIdentity = {
|
|
4
4
|
kind: 'legacy';
|
|
5
5
|
} | {
|
package/dist/report-contract.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export const REPORT_SCHEMA_VERSION = '1.
|
|
2
|
-
export const SUPPORTED_REPORT_SCHEMAS = ['1.0.0', REPORT_SCHEMA_VERSION];
|
|
1
|
+
export const REPORT_SCHEMA_VERSION = '1.3.0';
|
|
2
|
+
export const SUPPORTED_REPORT_SCHEMAS = ['1.0.0', '1.1.0', '1.2.0', REPORT_SCHEMA_VERSION];
|
|
3
3
|
/** Classification only, not structural validation. Never upgrades legacy data to success. */
|
|
4
4
|
export function identifyReportSchema(value) {
|
|
5
5
|
if (typeof value !== 'object' || value === null || Array.isArray(value))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"report-contract.js","sourceRoot":"","sources":["../src/report-contract.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,qBAAqB,GAAG,OAAO,CAAC;AAC7C,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,OAAO,EAAE,qBAAqB,CAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"report-contract.js","sourceRoot":"","sources":["../src/report-contract.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,qBAAqB,GAAG,OAAO,CAAC;AAC7C,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,qBAAqB,CAAU,CAAC;AAOpG,6FAA6F;AAC7F,MAAM,UAAU,oBAAoB,CAAC,KAAc;IACjD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACrE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;IACjC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,eAAe,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IACtE,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;IACpD,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;IAChE,OAAO,wBAAwB,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,KAAK,OAAO,CAAC;QACxE,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE;QAChC,CAAC,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC;AACvC,CAAC"}
|
|
@@ -57,6 +57,26 @@ const EXPLANATIONS = {
|
|
|
57
57
|
'Kein Banner, und nichts Einwilligungspflichtiges geladen',
|
|
58
58
|
],
|
|
59
59
|
'missing-reject-observation': ['Reject path not observed', 'Ablehnen-Pfad nicht beobachtet'],
|
|
60
|
+
'settings-check-disabled': [
|
|
61
|
+
'Settings check not enabled (--check-settings)',
|
|
62
|
+
'Einstellungs-Prüfung nicht eingeschaltet (--check-settings)',
|
|
63
|
+
],
|
|
64
|
+
'missing-settings-observation': [
|
|
65
|
+
'Settings path not observed',
|
|
66
|
+
'Einstellungs-Pfad nicht beobachtet',
|
|
67
|
+
],
|
|
68
|
+
'no-settings-control': [
|
|
69
|
+
'No control found that opens the settings',
|
|
70
|
+
'Kein Bedienelement gefunden, das die Einstellungen öffnet',
|
|
71
|
+
],
|
|
72
|
+
'no-save-control': [
|
|
73
|
+
'Settings opened, but no save button found',
|
|
74
|
+
'Einstellungen geöffnet, aber keine Speichern-Schaltfläche gefunden',
|
|
75
|
+
],
|
|
76
|
+
'settings-saved-and-reloaded': [
|
|
77
|
+
'Settings saved with everything off and reloaded',
|
|
78
|
+
'Einstellungen ohne Auswahl gespeichert und neu geladen',
|
|
79
|
+
],
|
|
60
80
|
'missing-consent-observation': ['Consent not observed', 'Consent nicht beobachtet'],
|
|
61
81
|
'incomplete-document': [
|
|
62
82
|
'Document observation incomplete',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capture.js","sourceRoot":"","sources":["../../src/reporters/capture.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"capture.js","sourceRoot":"","sources":["../../src/reporters/capture.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,SAAS,CAAC,MAAkB;IAC1C,OAAO,CACL,MAAM,CAAC,QAAQ,KAAK,SAAS;QAC7B,MAAM,CAAC,KAAK,CAAC,IAAI,CACf,CAAC,IAAI,EAAE,EAAE,CACP,IAAI,CAAC,KAAK,KAAK,SAAS;YACxB,IAAI,CAAC,OAAO,EAAE,QAAQ,KAAK,KAAK;YAChC,CAAC,IAAI,CAAC,MAAM,KAAK,IAAI,IAAI,IAAI,CAAC,MAAM,IAAI,GAAG,CAAC,CAC/C,CACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,MAAkB;IAChD,OAAO,MAAM,CAAC,IAAI,KAAK,IAAI;QACzB,CAAC,CAAC,yHAAyH;QAC3H,CAAC,CAAC,sGAAsG,CAAC;AAC7G,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,YAAY,CAAC,MAAkB;IAC7C,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,KAAK,IAAI,CAAC;IACpC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QAChC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC;QACvC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,KAAK,CAAC,IAAI,CACR,GAAG,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,IAAI,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI;gBAC1F,GAAG,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,KAAK,IAAI,CAAC,SAAS,IAAI,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,IAAI;gBACjH,GAAG,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,eAAe,IAAI;gBACpF,GAAG,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,IAAI;gBACtE,GAAG,IAAI,CAAC,uBAAuB,IAAI,IAAI,CAAC,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,iBAAiB,IAAI;gBAC1G,GAAG,IAAI,CAAC,UAAU,SAAS,MAAM,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,QAAQ,GAAG,CACtE,CAAC;YACF,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAChC,KAAK,CAAC,IAAI,CACR,KAAK,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,KAAK,CAAC,GAAG,EAAE,CAC/L,CAAC;YACJ,CAAC;YACD,IAAI,IAAI,CAAC,OAAO;gBACd,KAAK,CAAC,IAAI,CACR,KAAK,IAAI,CAAC,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,kCAAkC,GAAG,CAC5G,CAAC;QACN,CAAC;QACD,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,eAAe,IAAI,EAAE,EAAE,CAAC;YACpD,KAAK,CAAC,IAAI,CACR,KAAK,UAAU,CAAC,MAAM,KAAK,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,KAAK,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,gBAAgB,CAAC,UAAU,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,IAAI,eAAe,CAAC,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAChT,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,YAAY,CAAC,OAAe,EAAE,MAAe;IACpD,IAAI,OAAO,KAAK,kBAAkB;QAAE,OAAO,MAAM,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,kBAAkB,CAAC;IAC1F,IAAI,OAAO,KAAK,oBAAoB;QAClC,OAAO,MAAM,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,qBAAqB,CAAC;IACjE,OAAO,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,eAAe,CAAC;AACpD,CAAC;AAED,MAAM,YAAY,GAA8C;IAC9D,2BAA2B,EAAE;QAC3B,2CAA2C;QAC3C,yDAAyD;KAC1D;IACD,QAAQ,EAAE,CAAC,eAAe,EAAE,mBAAmB,CAAC;IAChD,gBAAgB,EAAE;QAChB,uCAAuC;QACvC,6CAA6C;KAC9C;IACD,kBAAkB,EAAE,CAAC,wBAAwB,EAAE,+BAA+B,CAAC;IAC/E,mBAAmB,EAAE;QACnB,kDAAkD;QAClD,0DAA0D;KAC3D;IACD,4BAA4B,EAAE,CAAC,0BAA0B,EAAE,gCAAgC,CAAC;IAC5F,yBAAyB,EAAE;QACzB,+CAA+C;QAC/C,6DAA6D;KAC9D;IACD,8BAA8B,EAAE;QAC9B,4BAA4B;QAC5B,oCAAoC;KACrC;IACD,qBAAqB,EAAE;QACrB,0CAA0C;QAC1C,2DAA2D;KAC5D;IACD,iBAAiB,EAAE;QACjB,2CAA2C;QAC3C,oEAAoE;KACrE;IACD,6BAA6B,EAAE;QAC7B,iDAAiD;QACjD,wDAAwD;KACzD;IACD,6BAA6B,EAAE,CAAC,sBAAsB,EAAE,0BAA0B,CAAC;IACnF,qBAAqB,EAAE;QACrB,iCAAiC;QACjC,uCAAuC;KACxC;IACD,mBAAmB,EAAE,CAAC,4BAA4B,EAAE,6BAA6B,CAAC;IAClF,wBAAwB,EAAE;QACxB,uDAAuD;QACvD,2DAA2D;KAC5D;IACD,iCAAiC,EAAE;QACjC,iCAAiC;QACjC,uCAAuC;KACxC;IACD,qBAAqB,EAAE,CAAC,oBAAoB,EAAE,qBAAqB,CAAC;IACpE,6BAA6B,EAAE;QAC7B,sCAAsC;QACtC,+CAA+C;KAChD;IACD,4BAA4B,EAAE;QAC5B,4BAA4B;QAC5B,oCAAoC;KACrC;IACD,6BAA6B,EAAE;QAC7B,kCAAkC;QAClC,yCAAyC;KAC1C;CACF,CAAC;AAEF,SAAS,gBAAgB,CAAC,MAAuB,EAAE,MAAe;IAChE,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9C,CAAC"}
|
|
@@ -6,7 +6,7 @@ const ID = 'impressum-link';
|
|
|
6
6
|
* Matched against the visible text and the URL path, so `/impressum`
|
|
7
7
|
* behind an icon-only link is still found.
|
|
8
8
|
*/
|
|
9
|
-
const LEGAL_NOTICE = /impressum|imprint|legal[\s_-]?notice|site[\s_-]?notice|anbieterkennzeichnung|mentions[\s_-]?l[eé]gales|aviso[\s_-]?legal|note[\s_-]?legali|colofon|informacje[\s_-]?prawne/i;
|
|
9
|
+
const LEGAL_NOTICE = /impressum|imprint|legal[\s_-]?notice|site[\s_-]?notice|anbieterkennzeichnung|mentions[\s_-]?l[eé]gales|aviso[\s_-]?legal|note[\s_-]?legali|colofon|informacje[\s_-]?prawne|impresszum/i;
|
|
10
10
|
const CONTACT = /kontakt|contact/i;
|
|
11
11
|
export const impressumLink = {
|
|
12
12
|
id: ID,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"impressum-link.js","sourceRoot":"","sources":["../../src/rules/impressum-link.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AAEjC,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAEvD,MAAM,EAAE,GAAG,gBAAgB,CAAC;AAE5B;;;;GAIG;AACH,MAAM,YAAY,GAChB,
|
|
1
|
+
{"version":3,"file":"impressum-link.js","sourceRoot":"","sources":["../../src/rules/impressum-link.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AAEjC,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAEvD,MAAM,EAAE,GAAG,gBAAgB,CAAC;AAE5B;;;;GAIG;AACH,MAAM,YAAY,GAChB,wLAAwL,CAAC;AAE3L,MAAM,OAAO,GAAG,kBAAkB,CAAC;AAEnC,MAAM,CAAC,MAAM,aAAa,GAAS;IACjC,EAAE,EAAE,EAAE;IACN,KAAK,EAAE,yBAAyB;IAChC,WAAW,EACT,wFAAwF;QACxF,yFAAyF;QACzF,wEAAwE;IAC1E,UAAU,EAAE,CAAC,SAAS,EAAE,kCAAkC,CAAC;IAC3D,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE;QAClB,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC;YAC/C,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;QACtD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,OAAO;gBACL;oBACE,MAAM,EAAE,EAAE;oBACV,QAAQ,EAAE,MAAM;oBAChB,OAAO,EAAE,GAAG,CAAC,IAAI,EAAE;wBACjB,EAAE,EAAE,gDAAgD;wBACpD,EAAE,EAAE,qDAAqD;qBAC1D,CAAC;oBACF,OAAO,EAAE,IAAI,CAAC,QAAQ;oBACtB,QAAQ,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,gBAAgB,EAAE,EAAE,EAAE,gBAAgB,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;oBACpF,GAAG,EAAE,GAAG,CAAC,IAAI,EAAE;wBACb,EAAE,EAAE,4JAA4J;wBAChK,EAAE,EAAE,6JAA6J;qBAClK,CAAC;iBACH;aACF,CAAC;QACJ,CAAC;QAED,OAAO;YACL;gBACE,MAAM,EAAE,EAAE;gBACV,QAAQ,EAAE,SAAS;gBACnB,OAAO,EAAE,GAAG,CAAC,IAAI,EAAE;oBACjB,EAAE,EAAE,iEAAiE;oBACrE,EAAE,EAAE,+DAA+D;iBACpE,CAAC;gBACF,OAAO,EAAE,IAAI,CAAC,QAAQ;gBACtB,QAAQ,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;gBACjD,GAAG,EAAE,GAAG,CAAC,IAAI,EAAE;oBACb,EAAE,EAAE,yGAAyG;oBAC7G,EAAE,EAAE,oGAAoG;iBACzG,CAAC;aACH;SACF,CAAC;IACJ,CAAC;CACF,CAAC"}
|
package/dist/rules/index.d.ts
CHANGED
|
@@ -9,5 +9,6 @@ import { rejectOption } from './reject-option.js';
|
|
|
9
9
|
import { thirdPartyCdns } from './third-party-cdns.js';
|
|
10
10
|
import { thirdPartyEmbeds } from './third-party-embeds.js';
|
|
11
11
|
import { trackersAfterReject } from './trackers-after-reject.js';
|
|
12
|
+
import { trackersAfterSettings } from './trackers-after-settings.js';
|
|
12
13
|
export declare const defaultRules: readonly Rule[];
|
|
13
|
-
export { adobeFonts, consentSettingsLink, googleFonts, impressumLink, preConsentTrackers, privacyPolicyLink, rejectOption, thirdPartyCdns, thirdPartyEmbeds, trackersAfterReject, };
|
|
14
|
+
export { adobeFonts, consentSettingsLink, googleFonts, impressumLink, preConsentTrackers, privacyPolicyLink, rejectOption, thirdPartyCdns, thirdPartyEmbeds, trackersAfterReject, trackersAfterSettings, };
|
package/dist/rules/index.js
CHANGED
|
@@ -8,9 +8,11 @@ import { rejectOption } from './reject-option.js';
|
|
|
8
8
|
import { thirdPartyCdns } from './third-party-cdns.js';
|
|
9
9
|
import { thirdPartyEmbeds } from './third-party-embeds.js';
|
|
10
10
|
import { trackersAfterReject } from './trackers-after-reject.js';
|
|
11
|
+
import { trackersAfterSettings } from './trackers-after-settings.js';
|
|
11
12
|
export const defaultRules = [
|
|
12
13
|
preConsentTrackers,
|
|
13
14
|
trackersAfterReject,
|
|
15
|
+
trackersAfterSettings,
|
|
14
16
|
rejectOption,
|
|
15
17
|
consentSettingsLink,
|
|
16
18
|
googleFonts,
|
|
@@ -20,5 +22,5 @@ export const defaultRules = [
|
|
|
20
22
|
impressumLink,
|
|
21
23
|
privacyPolicyLink,
|
|
22
24
|
];
|
|
23
|
-
export { adobeFonts, consentSettingsLink, googleFonts, impressumLink, preConsentTrackers, privacyPolicyLink, rejectOption, thirdPartyCdns, thirdPartyEmbeds, trackersAfterReject, };
|
|
25
|
+
export { adobeFonts, consentSettingsLink, googleFonts, impressumLink, preConsentTrackers, privacyPolicyLink, rejectOption, thirdPartyCdns, thirdPartyEmbeds, trackersAfterReject, trackersAfterSettings, };
|
|
24
26
|
//# sourceMappingURL=index.js.map
|
package/dist/rules/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/rules/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/rules/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAErE,MAAM,CAAC,MAAM,YAAY,GAAoB;IAC3C,kBAAkB;IAClB,mBAAmB;IACnB,qBAAqB;IACrB,YAAY;IACZ,mBAAmB;IACnB,WAAW;IACX,UAAU;IACV,gBAAgB;IAChB,cAAc;IACd,aAAa;IACb,iBAAiB;CAClB,CAAC;AAEF,OAAO,EACL,UAAU,EACV,mBAAmB,EACnB,WAAW,EACX,aAAa,EACb,kBAAkB,EAClB,iBAAiB,EACjB,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,mBAAmB,EACnB,qBAAqB,GACtB,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { say } from '../i18n.js';
|
|
2
2
|
import { linkMatches, linksChecked } from './links.js';
|
|
3
3
|
const ID = 'privacy-policy-link';
|
|
4
|
-
const PRIVACY_POLICY = /datenschutz|privacy|data[\s_-]?protection|confidentialit|privacidad|protezione[\s_-]?dei[\s_-]?dati|privacybeleid|polityka[\s_-]?prywatno/i;
|
|
4
|
+
const PRIVACY_POLICY = /datenschutz|privacy|data[\s_-]?protection|confidentialit|privacidad|protezione[\s_-]?dei[\s_-]?dati|privacybeleid|polityka[\s_-]?prywatno|adatv[eé]del|adatkezel/i;
|
|
5
5
|
export const privacyPolicyLink = {
|
|
6
6
|
id: ID,
|
|
7
7
|
title: 'No link to a privacy policy',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"privacy-policy-link.js","sourceRoot":"","sources":["../../src/rules/privacy-policy-link.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AAEjC,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAEvD,MAAM,EAAE,GAAG,qBAAqB,CAAC;AAEjC,MAAM,cAAc,GAClB,
|
|
1
|
+
{"version":3,"file":"privacy-policy-link.js","sourceRoot":"","sources":["../../src/rules/privacy-policy-link.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AAEjC,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAEvD,MAAM,EAAE,GAAG,qBAAqB,CAAC;AAEjC,MAAM,cAAc,GAClB,mKAAmK,CAAC;AAEtK,MAAM,CAAC,MAAM,iBAAiB,GAAS;IACrC,EAAE,EAAE,EAAE;IACN,KAAK,EAAE,6BAA6B;IACpC,WAAW,EACT,6FAA6F;QAC7F,iGAAiG;IACnG,UAAU,EAAE,CAAC,cAAc,EAAE,cAAc,CAAC;IAC5C,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE;QAClB,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC;YACjD,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,OAAO;YACL;gBACE,MAAM,EAAE,EAAE;gBACV,QAAQ,EAAE,SAAS;gBACnB,OAAO,EAAE,GAAG,CAAC,IAAI,EAAE;oBACjB,EAAE,EAAE,qDAAqD;oBACzD,EAAE,EAAE,qEAAqE;iBAC1E,CAAC;gBACF,OAAO,EAAE,IAAI,CAAC,QAAQ;gBACtB,QAAQ,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;gBACjD,GAAG,EAAE,GAAG,CAAC,IAAI,EAAE;oBACb,EAAE,EAAE,uGAAuG;oBAC3G,EAAE,EAAE,qGAAqG;iBAC1G,CAAC;aACH;SACF,CAAC;IACJ,CAAC;CACF,CAAC"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { type
|
|
1
|
+
import { type CookieTracker, type TrackerCategory } from '../data/trackers.js';
|
|
2
2
|
import { type Lang } from '../i18n.js';
|
|
3
3
|
import type { RecordedCookie, RecordedRequest } from '../types.js';
|
|
4
4
|
export interface TrackerHit {
|
|
5
|
-
tracker
|
|
5
|
+
/** A full tracker for host matches; cookie matches from the generated list have no hosts. */
|
|
6
|
+
tracker: CookieTracker;
|
|
6
7
|
/** Up to five request URLs and cookie names, deduplicated. */
|
|
7
8
|
evidence: string[];
|
|
8
9
|
}
|
|
@@ -18,8 +18,7 @@ export function findTrackerHits(requests, cookies, lang) {
|
|
|
18
18
|
}
|
|
19
19
|
}
|
|
20
20
|
for (const cookie of cookies) {
|
|
21
|
-
const tracker = findTrackerByCookie(cookie.name)
|
|
22
|
-
findTrackerByUrl(`https://${cookie.domain.replace(/^\./, '')}/`);
|
|
21
|
+
const tracker = findTrackerByCookie(cookie.name, cookie.domain);
|
|
23
22
|
if (tracker !== undefined) {
|
|
24
23
|
record(tracker, `cookie ${cookie.name} (${cookie.domain})`);
|
|
25
24
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tracker-hits.js","sourceRoot":"","sources":["../../src/rules/tracker-hits.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"tracker-hits.js","sourceRoot":"","sources":["../../src/rules/tracker-hits.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,mBAAmB,EACnB,gBAAgB,GAEjB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAa,GAAG,EAAa,MAAM,YAAY,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGtD,MAAM,YAAY,GAAG,CAAC,CAAC;AASvB,gFAAgF;AAChF,MAAM,UAAU,eAAe,CAC7B,QAAoC,EACpC,OAAkC,EAClC,IAAU;IAEV,MAAM,YAAY,GAAG,GAAG,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;IACjE,MAAM,IAAI,GAAG,IAAI,GAAG,EAA6D,CAAC;IAClF,MAAM,MAAM,GAAG,CAAC,OAAsB,EAAE,QAAgB,EAAE,EAAE;QAC1D,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,GAAG,EAAU,EAAE,CAAC;QACjF,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC3B,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAChC,CAAC,CAAC;IAEF,KAAK,MAAM,OAAO,IAAI,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC;QACjD,MAAM,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC9C,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,MAAM,CAAC,OAAO,EAAE,GAAG,YAAY,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IACD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,OAAO,GAAG,mBAAmB,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QAChE,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,MAAM,CAAC,OAAO,EAAE,UAAU,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;QACxD,OAAO;QACP,QAAQ,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC;KAC/C,CAAC,CAAC,CAAC;AACN,CAAC;AAED,MAAM,eAAe,GAAkC;IACrD,SAAS,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,SAAS,EAAE;IAC7C,WAAW,EAAE,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,SAAS,EAAE;IACjD,gBAAgB,EAAE,EAAE,EAAE,EAAE,gBAAgB,EAAE,EAAE,EAAE,gBAAgB,EAAE;IAChE,MAAM,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,cAAc,EAAE;IAC5C,sBAAsB,EAAE,EAAE,EAAE,EAAE,sBAAsB,EAAE,EAAE,EAAE,2BAA2B,EAAE;IACvF,aAAa,EAAE,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,aAAa,EAAE;CACxD,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,QAAyB,EAAE,IAAU,EAAE,EAAE,CACrE,GAAG,CAAC,IAAI,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { say } from '../i18n.js';
|
|
2
|
+
import { categoryLabel, findTrackerHits } from './tracker-hits.js';
|
|
3
|
+
const ID = 'trackers-after-settings';
|
|
4
|
+
export const trackersAfterSettings = {
|
|
5
|
+
id: ID,
|
|
6
|
+
title: 'Trackers run after the visitor switched everything off in the settings',
|
|
7
|
+
description: 'Opt-in check. privalint opens the settings layer of the consent banner on the start page ' +
|
|
8
|
+
'in a fresh browser, switches off every optional category, saves, reloads the page and ' +
|
|
9
|
+
'records what still loads. Anything on the tracker list that loads or sets new cookies ' +
|
|
10
|
+
'after that ignores the visitor’s choice.',
|
|
11
|
+
references: ['§ 25 Abs. 1 TDDDG', 'Art. 6(1)(a) GDPR', 'Art. 7(3) GDPR'],
|
|
12
|
+
requires: ['after-settings'],
|
|
13
|
+
check({ page, lang }) {
|
|
14
|
+
const settings = page.consent?.settings;
|
|
15
|
+
const after = settings?.afterSave;
|
|
16
|
+
if (after === undefined) {
|
|
17
|
+
return [];
|
|
18
|
+
}
|
|
19
|
+
const button = settings?.saveLabel ?? say(lang, { en: 'save', de: 'Speichern' });
|
|
20
|
+
return findTrackerHits(after.requests, after.cookies, lang).map(({ tracker, evidence }) => {
|
|
21
|
+
const { vendor } = tracker;
|
|
22
|
+
const category = categoryLabel(tracker.category, lang);
|
|
23
|
+
return {
|
|
24
|
+
ruleId: ID,
|
|
25
|
+
// Same reasoning as trackers-after-reject: the container alone may be configured correctly.
|
|
26
|
+
severity: tracker.category === 'tag-manager' ? 'warning' : 'error',
|
|
27
|
+
message: say(lang, {
|
|
28
|
+
en: `${vendor} (${category}) still runs after switching off all categories and clicking "${button}".`,
|
|
29
|
+
de: `${vendor} (${category}) läuft weiter, obwohl alle Kategorien abgewählt und „${button}“ geklickt wurde.`,
|
|
30
|
+
}),
|
|
31
|
+
pageUrl: page.finalUrl,
|
|
32
|
+
subject: vendor,
|
|
33
|
+
evidence,
|
|
34
|
+
fix: say(lang, {
|
|
35
|
+
en: `Check that ${vendor} belongs to a category the visitor can switch off in your consent manager, and that saving the settings blocks it the same way rejecting does.`,
|
|
36
|
+
de: `Prüfen, ob ${vendor} im Consent-Tool einer abwählbaren Kategorie zugeordnet ist und das Speichern der Einstellungen es genauso blockiert wie das Ablehnen.`,
|
|
37
|
+
}),
|
|
38
|
+
};
|
|
39
|
+
});
|
|
40
|
+
},
|
|
41
|
+
};
|
|
42
|
+
//# sourceMappingURL=trackers-after-settings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trackers-after-settings.js","sourceRoot":"","sources":["../../src/rules/trackers-after-settings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AAEjC,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEnE,MAAM,EAAE,GAAG,yBAAyB,CAAC;AAErC,MAAM,CAAC,MAAM,qBAAqB,GAAS;IACzC,EAAE,EAAE,EAAE;IACN,KAAK,EAAE,wEAAwE;IAC/E,WAAW,EACT,2FAA2F;QAC3F,wFAAwF;QACxF,wFAAwF;QACxF,0CAA0C;IAC5C,UAAU,EAAE,CAAC,mBAAmB,EAAE,mBAAmB,EAAE,gBAAgB,CAAC;IACxE,QAAQ,EAAE,CAAC,gBAAgB,CAAC;IAC5B,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE;QAClB,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC;QACxC,MAAM,KAAK,GAAG,QAAQ,EAAE,SAAS,CAAC;QAClC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,MAAM,MAAM,GAAG,QAAQ,EAAE,SAAS,IAAI,GAAG,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;QACjF,OAAO,eAAe,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,GAAG,CAC7D,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAW,EAAE;YACjC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;YAC3B,MAAM,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YACvD,OAAO;gBACL,MAAM,EAAE,EAAE;gBACV,4FAA4F;gBAC5F,QAAQ,EAAE,OAAO,CAAC,QAAQ,KAAK,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO;gBAClE,OAAO,EAAE,GAAG,CAAC,IAAI,EAAE;oBACjB,EAAE,EAAE,GAAG,MAAM,KAAK,QAAQ,iEAAiE,MAAM,IAAI;oBACrG,EAAE,EAAE,GAAG,MAAM,KAAK,QAAQ,yDAAyD,MAAM,mBAAmB;iBAC7G,CAAC;gBACF,OAAO,EAAE,IAAI,CAAC,QAAQ;gBACtB,OAAO,EAAE,MAAM;gBACf,QAAQ;gBACR,GAAG,EAAE,GAAG,CAAC,IAAI,EAAE;oBACb,EAAE,EAAE,cAAc,MAAM,gJAAgJ;oBACxK,EAAE,EAAE,cAAc,MAAM,wIAAwI;iBACjK,CAAC;aACH,CAAC;QACJ,CAAC,CACF,CAAC;IACJ,CAAC;CACF,CAAC"}
|
package/dist/scan-options.d.ts
CHANGED
|
@@ -23,6 +23,11 @@ export interface ScanOptions {
|
|
|
23
23
|
/** Legacy test helper: third-party requests receive synthetic empty responses. */
|
|
24
24
|
offline?: boolean;
|
|
25
25
|
consentCheck?: boolean | undefined;
|
|
26
|
+
/**
|
|
27
|
+
* Also open the banner's settings layer, switch off every optional category and save, in a
|
|
28
|
+
* second capture of the start page. Off by default: it loads the start page once more.
|
|
29
|
+
*/
|
|
30
|
+
settingsCheck?: boolean | undefined;
|
|
26
31
|
headed?: boolean | undefined;
|
|
27
32
|
channel?: string | undefined;
|
|
28
33
|
/**
|
package/dist/scan-options.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scan-options.js","sourceRoot":"","sources":["../src/scan-options.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"scan-options.js","sourceRoot":"","sources":["../src/scan-options.ts"],"names":[],"mappings":"AAkDA,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,QAAQ,EAAE,CAAC;IACX,WAAW,EAAE,CAAC;IACd,QAAQ,EAAE,KAAK;IACf,SAAS,EAAE,MAAM;IACjB,MAAM,EAAE,OAAO;CAChB,CAAC"}
|
package/dist/scanner.js
CHANGED
|
@@ -29,9 +29,11 @@ async function launchBrowser(options) {
|
|
|
29
29
|
if (!sandbox)
|
|
30
30
|
throw error;
|
|
31
31
|
// Chromium's own message ("No usable sandbox!") does not say what to change.
|
|
32
|
-
throw new Error('Chromium could not start with its sandbox.
|
|
33
|
-
'
|
|
34
|
-
'
|
|
32
|
+
throw new Error('Chromium could not start with its sandbox. It needs unprivileged user namespaces. ' +
|
|
33
|
+
'In a Docker container the default seccomp profile blocks them: run the container with ' +
|
|
34
|
+
'a seccomp profile that allows them (see Docker’s seccomp docs) or run privalint ' +
|
|
35
|
+
'without --sandbox. On Ubuntu 23.10 and later, AppArmor restricts them unless Chromium ' +
|
|
36
|
+
'is allowed to use them: ' +
|
|
35
37
|
'https://chromium.googlesource.com/chromium/src/+/main/docs/security/apparmor-userns-restrictions.md', { cause: error });
|
|
36
38
|
}
|
|
37
39
|
}
|
|
@@ -111,9 +113,15 @@ export async function scan(target, options = {}) {
|
|
|
111
113
|
throw error;
|
|
112
114
|
}
|
|
113
115
|
},
|
|
114
|
-
}, isStart).then((snapshot) => {
|
|
116
|
+
}, isStart ? 'reject' : 'none').then(async (snapshot) => {
|
|
115
117
|
if (progressFailure)
|
|
116
118
|
throw progressFailure.error;
|
|
119
|
+
if (isStart &&
|
|
120
|
+
options.settingsCheck === true &&
|
|
121
|
+
options.consentCheck !== false &&
|
|
122
|
+
snapshot.consent?.bannerFound === true) {
|
|
123
|
+
snapshot.consent.settings = await checkSettings(browser, url, siteUrl, options);
|
|
124
|
+
}
|
|
117
125
|
return { url, snapshot, isStart, pageIndex, captureId };
|
|
118
126
|
});
|
|
119
127
|
// Awaited in queue order below; this only keeps a page that fails while an earlier one is
|
|
@@ -180,7 +188,7 @@ export async function scan(target, options = {}) {
|
|
|
180
188
|
...(page.pageId === undefined ? {} : { pageId: page.pageId }),
|
|
181
189
|
pageUrl: diagnosticUrl(page.finalUrl),
|
|
182
190
|
});
|
|
183
|
-
return assessPage(page, rules, siteUrl, lang, index === 0, options.consentCheck !== false, configuredRules);
|
|
191
|
+
return assessPage(page, rules, siteUrl, lang, index === 0, options.consentCheck !== false, configuredRules, options.settingsCheck === true);
|
|
184
192
|
});
|
|
185
193
|
const partial = assessments.some((assessment) => assessment.evaluations.some((evaluation) => evaluation.partial || evaluation.reason === 'consent-disabled')) || snapshots.some((page) => !page.capture?.complete);
|
|
186
194
|
const result = {
|
|
@@ -196,6 +204,7 @@ export async function scan(target, options = {}) {
|
|
|
196
204
|
lang,
|
|
197
205
|
region,
|
|
198
206
|
consentCheck: options.consentCheck !== false,
|
|
207
|
+
settingsCheck: options.settingsCheck === true,
|
|
199
208
|
headed: options.headed === true,
|
|
200
209
|
channel: options.channel ?? 'chromium',
|
|
201
210
|
sandbox: options.sandbox === true,
|
|
@@ -240,11 +249,24 @@ export async function scan(target, options = {}) {
|
|
|
240
249
|
await browser.close();
|
|
241
250
|
}
|
|
242
251
|
}
|
|
252
|
+
/** Runs the settings path on the start page in a fresh context, after the reject path. */
|
|
253
|
+
async function checkSettings(browser, url, siteUrl, options) {
|
|
254
|
+
const capture = await capturePage(browser, url, siteUrl, options, 'settings');
|
|
255
|
+
return (capture.consent?.settings ?? {
|
|
256
|
+
outcome: 'interaction-failed',
|
|
257
|
+
reason: 'browser-interaction-failed',
|
|
258
|
+
// The banner showed in the first context but not in this one.
|
|
259
|
+
error: capture.error ?? 'browser-failure',
|
|
260
|
+
});
|
|
261
|
+
}
|
|
243
262
|
function consentSummary(start) {
|
|
244
263
|
if (start?.consent === undefined)
|
|
245
264
|
return {};
|
|
246
|
-
const { afterReject: _afterReject, ...summary } = start.consent;
|
|
247
|
-
|
|
265
|
+
const { afterReject: _afterReject, settings, ...summary } = start.consent;
|
|
266
|
+
if (settings === undefined)
|
|
267
|
+
return { consent: summary };
|
|
268
|
+
const { afterSave: _afterSave, ...settingsSummary } = settings;
|
|
269
|
+
return { consent: { ...summary, settings: settingsSummary } };
|
|
248
270
|
}
|
|
249
271
|
/** Adapter reports omit URL credentials, paths, queries and fragments by default. */
|
|
250
272
|
function redactReport(result) {
|
|
@@ -263,6 +285,19 @@ function redactReport(result) {
|
|
|
263
285
|
...(result.consent.rejectLabel === undefined
|
|
264
286
|
? {}
|
|
265
287
|
: { rejectLabel: redactText(result.consent.rejectLabel) }),
|
|
288
|
+
...(result.consent.settings === undefined
|
|
289
|
+
? {}
|
|
290
|
+
: {
|
|
291
|
+
settings: {
|
|
292
|
+
...result.consent.settings,
|
|
293
|
+
...(result.consent.settings.openLabel === undefined
|
|
294
|
+
? {}
|
|
295
|
+
: { openLabel: redactText(result.consent.settings.openLabel) }),
|
|
296
|
+
...(result.consent.settings.saveLabel === undefined
|
|
297
|
+
? {}
|
|
298
|
+
: { saveLabel: redactText(result.consent.settings.saveLabel) }),
|
|
299
|
+
},
|
|
300
|
+
}),
|
|
266
301
|
},
|
|
267
302
|
}),
|
|
268
303
|
pages: result.pages.map((page) => ({
|