如何使用 puppeteer 禁用 webRTC 本地 IP 泄漏?

问题描述 投票:0回答:2

我尝试过:

const browser = await puppeteer.launch({args: ['--enable-webrtc-stun-origin=false', '--enforce-webrtc-ip-permission-check=false']});

但这不起作用。 接下来我尝试了:

const targets = await browser.targets();
const backgroundPageTarget = targets.find(target => target.type() === 'background_page');
const backgroundPage = await backgroundPageTarget.page();
await backgroundPage.evaluateevaluateOnNewDocument(() => {
  chrome.privacy.network.webRTCIPHandlingPolicy.set({
    value: "default_public_interface_only"
  });
});

但是得到:

类型错误:无法读取未定义的属性“页面”

编辑:需要 {headless: true} 的解决方案。

node.js puppeteer google-chrome-headless
2个回答
8
投票

以下是防止 puppeteer 上的 webrtc IP 泄漏的步骤

version 1.9.0

注:

  • 后台页面可用于 Chrome 扩展。您可能不会在无头浏览器上找到后台页面。
  • Chrome headless 不支持扩展。我们必须使用
    headless: false

解决方案:WebRTC 防泄漏

将 git 存储库克隆到某个本地文件夹(即:

extensions/webrtc
),

git clone https://github.com/aghorler/WebRTC-Leak-Prevent extensions/webrtc

在代码中使用它,

const puppeteer = require('puppeteer');

async function helloWorld() {
  // load the extension
  const extensionPath = 'extensions/webrtc';
  const browser = await puppeteer.launch({
    // must be non-headless
    headless: false,
    args: [
      `--disable-extensions-except=${extensionPath}`,
      `--load-extension=${extensionPath}`,
    ],
  });

  const page = await browser.newPage();

  // test it with browserleaks.com
  await page.goto('https://browserleaks.com/webrtc');

  // psss: just me hiding my details
  await page.evaluate(() => $('#rtc-ipv4 a').css('-webkit-filter', 'blur(5px)'));

  // taking evidence
  await page.screenshot({ path: 'screenshots/browserleaks.png' });

  await browser.close();
}

helloWorld();

结果:

先进的东西

如果您想快速从 webRTC 隐藏公共和私有 IP,请将此 (

extensions/webrtc/background.js
) 行修改为
disable_non_proxied_udp
,


0
投票

最简单的解决方案,无需安装任何扩展,您可以使用这些标志启动 Chrome/Chromium,并且不会出现 IP 泄漏:

args: [
  '--webrtc-ip-handling-policy=disable_non_proxied_udp',
  '--force-webrtc-ip-handling-policy',
]

完整答案可以在这里找到:https://stackoverflow.com/a/78088496/15130822

© www.soinside.com 2019 - 2024. All rights reserved.