Add whitelist

This commit is contained in:
Sefinek 2024-10-10 07:35:45 +02:00
parent 35af7788f8
commit 28c8060e6f
2 changed files with 10 additions and 3 deletions

View file

@ -10,6 +10,7 @@ const headers = require('./scripts/headers.js');
const { logToCSV, readReportedIPs, wasImageRequestLogged } = require('./scripts/csv.js'); const { logToCSV, readReportedIPs, wasImageRequestLogged } = require('./scripts/csv.js');
const formatDelay = require('./scripts/formatDelay.js'); const formatDelay = require('./scripts/formatDelay.js');
const clientIp = require('./scripts/clientIp.js'); const clientIp = require('./scripts/clientIp.js');
const whitelist = require('./whitelist.js');
const log = require('./scripts/log.js'); const log = require('./scripts/log.js');
const fetchBlockedIPs = async () => { const fetchBlockedIPs = async () => {
@ -49,8 +50,7 @@ const isIPReportedRecently = (rayId, ip, reportedIPs) => {
return { recentlyReported: false }; return { recentlyReported: false };
}; };
const reportIP = async (event, country, hostname, endpoint, userAgent, cycleErrorCounts) => { const reportIP = async (event, uri, country, hostname, endpoint, cycleErrorCounts) => {
const uri = `${hostname}${endpoint}`;
if (!uri) { if (!uri) {
logToCSV(event.rayName, event.clientIP, country, hostname, endpoint, event.userAgent, event.action, 'MISSING_URI'); logToCSV(event.rayName, event.clientIP, country, hostname, endpoint, event.userAgent, event.action, 'MISSING_URI');
log('warn', `Missing URL ${event.clientIP}; URI: ${uri}`); log('warn', `Missing URL ${event.clientIP}; URI: ${uri}`);
@ -139,6 +139,9 @@ const reportIP = async (event, country, hostname, endpoint, userAgent, cycleErro
continue; continue;
} }
const uri = `${event.hostname}${event.endpoint}`;
if (whitelist.includes(uri)) return log('log', `Ignoring ${uri}...`);
const reportedIPs = readReportedIPs(); const reportedIPs = readReportedIPs();
const { recentlyReported, timeDifference, reason } = isIPReportedRecently(event.rayName, ip, reportedIPs); const { recentlyReported, timeDifference, reason } = isIPReportedRecently(event.rayName, ip, reportedIPs);
if (recentlyReported) { if (recentlyReported) {
@ -162,7 +165,7 @@ const reportIP = async (event, country, hostname, endpoint, userAgent, cycleErro
continue; continue;
} }
const wasReported = await reportIP(event, event.clientCountryName, event.clientRequestHTTPHost, event.clientRequestPath, event.userAgent, cycleErrorCounts); const wasReported = await reportIP(event, uri, event.clientCountryName, event.clientRequestHTTPHost, event.clientRequestPath, cycleErrorCounts);
if (wasReported) { if (wasReported) {
cycleReportedCount++; cycleReportedCount++;
await new Promise(resolve => setTimeout(resolve, SUCCESS_COOLDOWN)); await new Promise(resolve => setTimeout(resolve, SUCCESS_COOLDOWN));

4
whitelist.js Normal file
View file

@ -0,0 +1,4 @@
module.exports = [
'sefinek.net/milosna-grota/weryfikacja',
'sefinek.net/genshin-stella-mod/download'
];