diff --git a/server/middleware/requestLogger.ts b/server/middleware/requestLogger.ts index 452c986c..6d1bdab4 100644 --- a/server/middleware/requestLogger.ts +++ b/server/middleware/requestLogger.ts @@ -8,7 +8,7 @@ export default defineEventHandler((event) => { event.node.res.on("finish", () => { logRequest({ - ip, + ip: anonymizeIp(ip), path, method, statusCode: event.node.res.statusCode, diff --git a/server/utils/requestLogger.ts b/server/utils/requestLogger.ts index aff978b7..df1a78fb 100644 --- a/server/utils/requestLogger.ts +++ b/server/utils/requestLogger.ts @@ -1,3 +1,5 @@ +import { createHmac } from "node:crypto"; + export interface RequestLogEntry { ip: string; path: string; @@ -7,6 +9,11 @@ export interface RequestLogEntry { timestamp: string; } +export function anonymizeIp(ip: string): string { + const secret = useRuntimeConfig().adminPassword || "default-hmac-key"; + return createHmac("sha256", secret).update(ip).digest("hex").slice(0, 16); +} + export function logRequest(data: RequestLogEntry): void { try { const redis = getRedis();