init auth and main function
This commit is contained in:
@@ -0,0 +1,124 @@
|
||||
await page.add_init_script("""
|
||||
// === Собираем перехваченные данные (пассивно, только копирование) ===
|
||||
window._interceptedData = {
|
||||
logs: [],
|
||||
submitRealCalls: [],
|
||||
fetchCalls: [],
|
||||
};
|
||||
|
||||
// === Отключаем ANTI_FRAUD_ENABLED ===
|
||||
const _origDefineProperty = Object.defineProperty;
|
||||
Object.defineProperty = function(obj, prop, descriptor) {
|
||||
if (prop === 'ANTI_FRAUD_ENABLED') {
|
||||
descriptor.value = false;
|
||||
}
|
||||
return _origDefineProperty.call(this, obj, prop, descriptor);
|
||||
};
|
||||
if (typeof window.ANTI_FRAUD_ENABLED !== 'undefined') {
|
||||
window.ANTI_FRAUD_ENABLED = false;
|
||||
}
|
||||
|
||||
// === Перехват loggerService.log — только копирование ===
|
||||
const _patchLoggerService = (logger) => {
|
||||
if (logger && typeof logger.log === 'function' && !logger._intercepted) {
|
||||
const _origLog = logger.log;
|
||||
logger.log = function(...args) {
|
||||
window._interceptedData.logs.push({ args: [...args], ts: Date.now() });
|
||||
return _origLog.apply(this, args);
|
||||
};
|
||||
logger._intercepted = true;
|
||||
}
|
||||
};
|
||||
|
||||
let _currentLoggerService = window.loggerService;
|
||||
Object.defineProperty(window, 'loggerService', {
|
||||
set: function(val) {
|
||||
_currentLoggerService = val;
|
||||
_patchLoggerService(val);
|
||||
},
|
||||
get: function() {
|
||||
return _currentLoggerService;
|
||||
},
|
||||
configurable: true
|
||||
});
|
||||
if (window.loggerService) _patchLoggerService(window.loggerService);
|
||||
|
||||
// === Перехват fetch — только копирование ===
|
||||
const _origFetch = window.fetch;
|
||||
window.fetch = async function(...fetchArgs) {
|
||||
const url = fetchArgs[0];
|
||||
const options = fetchArgs[1] || {};
|
||||
const urlStr = typeof url === 'string' ? url : (url && url.url) || '';
|
||||
|
||||
const callData = {
|
||||
url: urlStr,
|
||||
method: options.method || 'GET',
|
||||
ts: Date.now(),
|
||||
};
|
||||
|
||||
if (options.body) {
|
||||
try {
|
||||
callData.body = typeof options.body === 'string'
|
||||
? JSON.parse(options.body)
|
||||
: options.body;
|
||||
} catch(e) {
|
||||
callData.bodyRaw = String(options.body);
|
||||
}
|
||||
}
|
||||
|
||||
if (urlStr.includes('webhook') || urlStr.includes('real') || urlStr.includes('n8n.uplify')) {
|
||||
window._interceptedData.fetchCalls.push(callData);
|
||||
}
|
||||
|
||||
const response = await _origFetch.apply(this, fetchArgs);
|
||||
|
||||
if (urlStr.includes('webhook') || urlStr.includes('real') || urlStr.includes('n8n.uplify')) {
|
||||
try {
|
||||
const cloned = response.clone();
|
||||
const body = await cloned.text();
|
||||
callData.response = body.substring(0, 2000);
|
||||
callData.status = response.status;
|
||||
} catch(e) {}
|
||||
}
|
||||
|
||||
return response;
|
||||
};
|
||||
|
||||
// === Перехват submitReal — только копирование ===
|
||||
const _checkSubmitReal = setInterval(() => {
|
||||
const searchIn = [window];
|
||||
for (const key of Object.getOwnPropertyNames(window)) {
|
||||
try {
|
||||
const val = window[key];
|
||||
if (val && typeof val === 'object') searchIn.push(val);
|
||||
} catch(e) {}
|
||||
}
|
||||
|
||||
for (const obj of searchIn) {
|
||||
if (obj && typeof obj.submitReal === 'function' && !obj._intercepted) {
|
||||
const _origSubmitReal = obj.submitReal;
|
||||
obj.submitReal = async function(...args) {
|
||||
window._interceptedData.submitRealCalls.push({
|
||||
ts: Date.now(),
|
||||
visitId: obj.appModel?.visitId,
|
||||
visitorId: obj.fingerprintModel?.visitorId,
|
||||
platform: obj.configModel?.platform,
|
||||
realUrl: obj.configModel?.realUrl,
|
||||
snapshot: obj.securityModel?.snapshot,
|
||||
gaInit: obj.validationModel?.gaInit,
|
||||
ymInit: obj.validationModel?.ymInit,
|
||||
adblockEnabled: obj.validationModel?.adblockEnabled,
|
||||
pageSource: obj.configModel?.pageSource,
|
||||
redirectAllowed: obj.securityModel?.redirectAllowed,
|
||||
fpBotType: obj.securityModel?.fpBotType,
|
||||
country: obj.userModel?.geo?.country_code,
|
||||
});
|
||||
return _origSubmitReal.apply(this, args);
|
||||
};
|
||||
obj._intercepted = true;
|
||||
}
|
||||
}
|
||||
}, 300);
|
||||
|
||||
setTimeout(() => clearInterval(_checkSubmitReal), 30000);
|
||||
""")
|
||||
Reference in New Issue
Block a user