Print all the full hosts so they are easier to visit and get tainted
with cookies
This commit is contained in:
parent
86bd7f72b6
commit
7fdc2a3660
|
@ -164,4 +164,8 @@ export default class ExtendedRequest {
|
||||||
getMarkedEntries() {
|
getMarkedEntries() {
|
||||||
return this.stolenData.filter((data) => data.hasMark());
|
return this.stolenData.filter((data) => data.hasMark());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
getHost() {
|
||||||
|
return new URL(this.url).host;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,7 +4,14 @@ import ExtendedRequest from "./extended-request";
|
||||||
export type Sources = "cookie" | "pathname" | "queryparams" | "header";
|
export type Sources = "cookie" | "pathname" | "queryparams" | "header";
|
||||||
|
|
||||||
import { TCString, TCModel } from "@iabtcf/core";
|
import { TCString, TCModel } from "@iabtcf/core";
|
||||||
import { getMemory, isJSONObject, isURL, parseToObject } from "./util";
|
import {
|
||||||
|
allSubhosts,
|
||||||
|
getMemory,
|
||||||
|
isJSONObject,
|
||||||
|
isURL,
|
||||||
|
parseToObject,
|
||||||
|
unique,
|
||||||
|
} from "./util";
|
||||||
|
|
||||||
const id = (function* id() {
|
const id = (function* id() {
|
||||||
let i = 0;
|
let i = 0;
|
||||||
|
@ -45,7 +52,7 @@ export class StolenDataEntry {
|
||||||
priority += 100;
|
priority += 100;
|
||||||
}
|
}
|
||||||
if (this.source === "cookie") {
|
if (this.source === "cookie") {
|
||||||
priority += 100;
|
priority += 200;
|
||||||
}
|
}
|
||||||
return priority;
|
return priority;
|
||||||
}
|
}
|
||||||
|
@ -68,11 +75,9 @@ export class StolenDataEntry {
|
||||||
host: url.host,
|
host: url.host,
|
||||||
path: url.pathname,
|
path: url.pathname,
|
||||||
...Object.fromEntries(
|
...Object.fromEntries(
|
||||||
(
|
((url.searchParams as unknown) as {
|
||||||
url.searchParams as unknown as {
|
entries: () => Iterable<[string, string]>;
|
||||||
entries: () => Iterable<[string, string]>;
|
}).entries()
|
||||||
}
|
|
||||||
).entries()
|
|
||||||
),
|
),
|
||||||
};
|
};
|
||||||
return object;
|
return object;
|
||||||
|
@ -257,4 +262,12 @@ export class RequestCluster extends EventEmitter {
|
||||||
getMarkedRequests() {
|
getMarkedRequests() {
|
||||||
return this.requests.filter((request) => request.hasMark());
|
return this.requests.filter((request) => request.hasMark());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
getFullHosts() {
|
||||||
|
return unique(
|
||||||
|
this.requests
|
||||||
|
.map((request) => allSubhosts(request.getHost()))
|
||||||
|
.reduce((a, b) => a.concat(b), [])
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
import React from "react";
|
import React from "react";
|
||||||
import memory from "../memory";
|
|
||||||
import { MergedStolenDataEntry, Sources } from "../request-cluster";
|
import { MergedStolenDataEntry, Sources } from "../request-cluster";
|
||||||
import { getMemory, hyphenate } from "../util";
|
import { getMemory, hyphenate } from "../util";
|
||||||
|
|
||||||
|
@ -101,6 +101,11 @@ export default function StolenDataCluster({
|
||||||
Wyczyść cookiesy
|
Wyczyść cookiesy
|
||||||
</a>
|
</a>
|
||||||
</h2>
|
</h2>
|
||||||
|
<div>
|
||||||
|
{cluster.getFullHosts().map((host) => (
|
||||||
|
<a href={`https://${host}`}>{host}, </a>
|
||||||
|
))}
|
||||||
|
</div>
|
||||||
<table>
|
<table>
|
||||||
<tbody>
|
<tbody>
|
||||||
{cluster
|
{cluster
|
||||||
|
|
13
util.ts
13
util.ts
|
@ -86,3 +86,16 @@ export function hyphenate(str: string): string {
|
||||||
export function getMemory(): Memory {
|
export function getMemory(): Memory {
|
||||||
return (browser.extension.getBackgroundPage().window as any).memory as Memory;
|
return (browser.extension.getBackgroundPage().window as any).memory as Memory;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function unique(array: string[]) {
|
||||||
|
return Array.from(new Set(array));
|
||||||
|
}
|
||||||
|
|
||||||
|
export function allSubhosts(host: string) {
|
||||||
|
const parts = host.split(".");
|
||||||
|
const result = [];
|
||||||
|
for (let i = 0; i < parts.length - 2; i++) {
|
||||||
|
result.push(parts.slice(i).join("."));
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user