🐛 fix(bestdebrid): inject CDP anti-fingerprint patches for Cloudflare Turnstile
Use Chrome DevTools Protocol to inject scripts before page load that: - Set navigator.webdriver to false - Add fake navigator.plugins - Set navigator.languages to realistic values - Add window.chrome runtime stub Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
77240ae18d
commit
df02a04cfd
@ -192,6 +192,24 @@ export class BestDebridWebFallback {
|
|||||||
});
|
});
|
||||||
window.webContents.setUserAgent(BESTDEBRID_USER_AGENT);
|
window.webContents.setUserAgent(BESTDEBRID_USER_AGENT);
|
||||||
window.setMenuBarVisibility(false);
|
window.setMenuBarVisibility(false);
|
||||||
|
|
||||||
|
// Inject anti-fingerprint patches via CDP before any page JS runs
|
||||||
|
// This hides Electron-specific properties that Cloudflare Turnstile detects
|
||||||
|
try {
|
||||||
|
window.webContents.debugger.attach("1.3");
|
||||||
|
await window.webContents.debugger.sendCommand("Page.addScriptToEvaluateOnNewDocument", {
|
||||||
|
source: [
|
||||||
|
"Object.defineProperty(navigator, 'webdriver', { get: () => false });",
|
||||||
|
"Object.defineProperty(navigator, 'plugins', { get: () => [1, 2, 3, 4, 5] });",
|
||||||
|
"Object.defineProperty(navigator, 'languages', { get: () => ['de-DE', 'de', 'en-US', 'en'] });",
|
||||||
|
"window.chrome = { runtime: {}, loadTimes: function() {}, csi: function() {} };"
|
||||||
|
].join("\n")
|
||||||
|
});
|
||||||
|
window.webContents.debugger.detach();
|
||||||
|
} catch {
|
||||||
|
// CDP not available — continue without patches
|
||||||
|
}
|
||||||
|
|
||||||
window.on("closed", () => {
|
window.on("closed", () => {
|
||||||
if (this.loginWindow === window) {
|
if (this.loginWindow === window) {
|
||||||
this.loginWindow = null;
|
this.loginWindow = null;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user