伪装者对args的困惑

时间:2020-10-05 07:48:10

标签: javascript puppeteer

我对Puppeteer所需的参数有些困惑,尤其是在使用puppeteer-extra stealth插件时。我目前仅使用所有默认设置和Chromium,但是我不断看到这样的示例:

let options = {
    headless: false,
    ignoreHTTPSErrors: true,
    args: [
        '--no-sandbox',
        '--disable-setuid-sandbox',
        '--disable-sync',
        '--ignore-certificate-errors'
    ],
    defaultViewport: { width: 1366, height: 768 }
};

我是否真的需要其中任何一个以避免被检测到?一直在使用Puppeteer而未设置任何一个,它通过了bot测试。 --no-sandbox的用途是什么?

1 个答案:

答案 0 :(得分:1)

这些是铬的特征-不是操纵p的

例如,请看一下--no-sandbox的以下部分。 https://github.com/puppeteer/puppeteer/blob/main/docs/troubleshooting.md#setting-up-chrome-linux-sandbox

设置Chrome Linux沙箱
为了保护主机 在不受信任的网络内容的环境下,Chrome使用了多层 沙箱。为了使其正常工作,应配置主机 第一。如果没有好的Chrome沙盒可供使用,它将崩溃 出现错误“没有可用的沙箱!”。

如果您完全信任在Chrome中打开的内容,则可以启动 使用--no-sandbox参数的Chrome:

const browser = await puppeteer.launch({args: ['--no-sandbox',
'--disable-setuid-sandbox']});

注意:在没有沙箱的情况下运行 强烈劝阻。考虑改用沙箱。

https://chromium.googlesource.com/chromium/src/+/HEAD/docs/linux/sandboxing.md#linux-sandboxing

Chromium使用多进程模型,可以提供不同的 浏览器不同部分的特权和限制。对于 例如,我们希望渲染器以一组有限的特权运行 因为它们会处理不受信任的输入,并且很可能会受到损害。 渲染器将​​使用IPC机制来请求访问资源 特权更高(浏览器进程)。您可以找到更多有关此的信息 一般设计在这里。

我们在Linux和Chrome操作系统上使用了不同的沙盒技术, 结合起来,达到很好的沙箱水平。你可以看到 通过查看chrome:// sandbox当前可以使用沙箱 (渲染器进程)和chrome:// gpu(gpu进程)。\

。 。

您可以禁用所有沙箱(对于 测试),使用--no-sandbox。