Compare commits
3 Commits
773d14d2da
...
e8075b384d
Author | SHA1 | Date | |
---|---|---|---|
e8075b384d | |||
dc28bd5fa2 | |||
395e2206e1 |
@ -16,7 +16,7 @@ export default class ExtendedRequest {
|
|||||||
public url: string;
|
public url: string;
|
||||||
public shorthost: string;
|
public shorthost: string;
|
||||||
public requestHeaders: Request["requestHeaders"];
|
public requestHeaders: Request["requestHeaders"];
|
||||||
public origin: string;
|
public originalURL: string;
|
||||||
public initialized = false;
|
public initialized = false;
|
||||||
public stolenData: StolenDataEntry[];
|
public stolenData: StolenDataEntry[];
|
||||||
|
|
||||||
@ -34,19 +34,19 @@ export default class ExtendedRequest {
|
|||||||
} else {
|
} else {
|
||||||
url = (this.data as any).frameAncestors[0].url;
|
url = (this.data as any).frameAncestors[0].url;
|
||||||
}
|
}
|
||||||
this.origin = new URL(url).origin;
|
this.originalURL = new URL(url).origin;
|
||||||
}
|
}
|
||||||
|
|
||||||
getOrigin(): string {
|
getOriginalURL(): string {
|
||||||
if (!this.initialized) {
|
if (!this.initialized) {
|
||||||
throw new Error("initialize first!!");
|
throw new Error("initialize first!!");
|
||||||
}
|
}
|
||||||
return this.origin;
|
return this.originalURL;
|
||||||
}
|
}
|
||||||
|
|
||||||
isThirdParty() {
|
isThirdParty() {
|
||||||
const request_url = new URL(this.data.url);
|
const request_url = new URL(this.data.url);
|
||||||
const origin_url = new URL(this.getOrigin());
|
const origin_url = new URL(this.getOriginalURL());
|
||||||
if (request_url.host.includes(origin_url.host)) {
|
if (request_url.host.includes(origin_url.host)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -65,7 +65,7 @@ export default class ExtendedRequest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
exposesOrigin() {
|
exposesOrigin() {
|
||||||
const url = new URL(this.getOrigin());
|
const url = new URL(this.getOriginalURL());
|
||||||
const host = url.host;
|
const host = url.host;
|
||||||
const path = url.pathname;
|
const path = url.pathname;
|
||||||
return (
|
return (
|
||||||
|
12
memory.ts
12
memory.ts
@ -7,19 +7,19 @@ export default class Memory extends EventEmitter {
|
|||||||
origin_to_history = {} as Record<string, Record<string, RequestCluster>>;
|
origin_to_history = {} as Record<string, Record<string, RequestCluster>>;
|
||||||
async register(request: ExtendedRequest) {
|
async register(request: ExtendedRequest) {
|
||||||
await request.init();
|
await request.init();
|
||||||
console.log("registering request for", request.origin);
|
console.log("registering request for", request.originalURL);
|
||||||
if (!request.isThirdParty()) {
|
if (!request.isThirdParty()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (!this.origin_to_history[request.origin]) {
|
if (!this.origin_to_history[request.originalURL]) {
|
||||||
this.origin_to_history[request.origin] = {};
|
this.origin_to_history[request.originalURL] = {};
|
||||||
}
|
}
|
||||||
const shorthost = getshorthost(new URL(request.url).host);
|
const shorthost = getshorthost(new URL(request.url).host);
|
||||||
if (!this.origin_to_history[request.origin][shorthost]) {
|
if (!this.origin_to_history[request.originalURL][shorthost]) {
|
||||||
const cluster = new RequestCluster(shorthost);
|
const cluster = new RequestCluster(shorthost);
|
||||||
this.origin_to_history[request.origin][shorthost] = cluster;
|
this.origin_to_history[request.originalURL][shorthost] = cluster;
|
||||||
}
|
}
|
||||||
this.origin_to_history[request.origin][shorthost].add(request);
|
this.origin_to_history[request.originalURL][shorthost].add(request);
|
||||||
this.emit("change");
|
this.emit("change");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -41,7 +41,9 @@ function Report() {
|
|||||||
style={{
|
style={{
|
||||||
width: "400px",
|
width: "400px",
|
||||||
overflowWrap: "anywhere",
|
overflowWrap: "anywhere",
|
||||||
backgroundColor: entry.isRelatedToID() ? "yellow" : "white",
|
backgroundColor: entry.isRelatedToID()
|
||||||
|
? "#ffff0054"
|
||||||
|
: "white",
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
{entry.value}
|
{entry.value}
|
||||||
|
@ -49,7 +49,7 @@ export class StolenDataEntry {
|
|||||||
getPriority() {
|
getPriority() {
|
||||||
let priority = 0;
|
let priority = 0;
|
||||||
priority += Math.min(this.value.length, 50);
|
priority += Math.min(this.value.length, 50);
|
||||||
const url = new URL(this.request.getOrigin());
|
const url = new URL(this.request.originalURL);
|
||||||
if (this.value.includes(url.host)) {
|
if (this.value.includes(url.host)) {
|
||||||
priority += 100;
|
priority += 100;
|
||||||
}
|
}
|
||||||
@ -127,7 +127,7 @@ export class StolenDataEntry {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private classify(): keyof typeof Classifications {
|
private classify(): keyof typeof Classifications {
|
||||||
if (this.value.includes(this.request.origin)) {
|
if (this.value.includes(this.request.originalURL)) {
|
||||||
return "history";
|
return "history";
|
||||||
} else {
|
} else {
|
||||||
return "id";
|
return "id";
|
||||||
@ -172,15 +172,15 @@ export class MergedStolenDataEntry {
|
|||||||
}
|
}
|
||||||
|
|
||||||
getNames(): string[] {
|
getNames(): string[] {
|
||||||
return Array.from(new Set(this.entries.map((e) => e.name)));
|
return unique(this.entries.map((e) => e.name));
|
||||||
}
|
}
|
||||||
|
|
||||||
getSources(): string[] {
|
getSources(): string[] {
|
||||||
return Array.from(new Set(this.entries.map((e) => e.source)));
|
return unique(this.entries.map((e) => e.source));
|
||||||
}
|
}
|
||||||
|
|
||||||
getValues() {
|
getValues() {
|
||||||
return Array.from(new Set(this.entries.map((e) => e.value)));
|
return unique(this.entries.map((e) => e.value));
|
||||||
}
|
}
|
||||||
|
|
||||||
getParsedValues(key_path: string) {
|
getParsedValues(key_path: string) {
|
||||||
|
Loading…
Reference in New Issue
Block a user