mirror of
https://codeberg.org/vlw/honeypot.git
synced 2025-11-05 04:22:43 +01:00
73 lines
1.6 KiB
JavaScript
73 lines
1.6 KiB
JavaScript
// Set a global delay to simulate crappy web software
|
|
VV.delay = 200;
|
|
|
|
// Log user activities
|
|
{
|
|
const MOUSE_MOVE_TIMEOUT_MS = 100;
|
|
|
|
const logUrl = new URL(window.location);
|
|
logUrl.pathname = "/log";
|
|
|
|
let mouseMoveTimeout;
|
|
|
|
// Return a fingerprint for this browser
|
|
const fingerprint = async () => {
|
|
const buffer = await window.crypto.subtle.digest("SHA-1", new TextEncoder().encode(JSON.stringify([
|
|
navigator.userAgent,
|
|
navigator.buildId,
|
|
navigator.languages
|
|
])));
|
|
|
|
let fingerprint;
|
|
|
|
for (let i = 0; i < buffer.byteLength; i++) {
|
|
fingerprint += buffer[i];
|
|
}
|
|
|
|
return fingerprint;
|
|
};
|
|
|
|
// Log data
|
|
const log = async (data) => {
|
|
console.log(JSON.stringify({
|
|
data: data,
|
|
fingerprint: await fingerprint()
|
|
}));
|
|
|
|
return await fetch(logUrl, {
|
|
body: JSON.stringify({
|
|
data: data,
|
|
fingerprint: await fingerprint()
|
|
}),
|
|
method: "POST",
|
|
headers: VV.header
|
|
});
|
|
};
|
|
|
|
const mouseEvent = (event) => {
|
|
return {
|
|
e: event.type,
|
|
w: window.innerWidth,
|
|
h: window.innerHeight,
|
|
x: event.x,
|
|
y: event.y
|
|
}
|
|
}
|
|
|
|
const keyEvent = (event) => {
|
|
return {
|
|
e: event.type,
|
|
c: event.key,
|
|
s: event.shiftKey
|
|
}
|
|
}
|
|
|
|
document.addEventListener("keyup", (event) => log(keyEvent(event)));
|
|
document.addEventListener("keydown", (event) => log(keyEvent(event)));
|
|
document.addEventListener("click", (event) => log(mouseEvent(event)));
|
|
document.addEventListener("mousemove", (event) => {
|
|
// Throttle mousemove events
|
|
clearTimeout(mouseMoveTimeout);
|
|
//mouseMoveTimeout = setTimeout(() => log(mouseEvent(event)), MOUSE_MOVE_TIMEOUT_MS);
|
|
});
|
|
}
|