• home > webfront > browser > Puppeteer >

    Puppeteer跨域策略CSP绕过设置

    Author:zhoulujun Date:

    要去抓cookie,那还不如第一种方法模拟登陆好两个域名的网站开启跨域,直接互相调用接口。一个是--disable-web-securit,还有就是调用page setRequestInterception(true);

    之前写cookies跨域设置的时候,提到过跨域与CSP

    要去抓cookie,那还不如第一种方法模拟登陆好两个域名的网站开启跨域,直接互相调用接口。

    跨域的判断:

    • 协议不同(http/https)

    • 主域名不同(taobao/baidu)

    • 子域名不同(www/blog)

    • 端口号不同(80/443)

    以上四个,两个url只要有一个条件对不上,那就是属于跨域了。跨域造成的问题就是,发送ajax等交换数据的方式会全部失效,打开 Chrome Dev 查看network面板,发现CSP

    Puppeteer跨域设置

    我们无法去改变接口源头的情况下,一般让chrome禁用CSP,比如:

    "C:\Program Files\Google\Chrome Beta\Application\chrome.exe" --disable-web-security --user-data-dir=C:\chromeDEVData\CROS

    Puppeteer也可以如此

    --disable-web-security

    直接启动的时候让浏览器支持跨域(想干啥干啥),没有任何限制。

    await puppeteer.launch({
      args: [
        '--disable-web-security'
      ]
    })

    这个参数的作用就是拿来控制内容安全策略的,加完以后,页面不同域名下就可以无限跨域了。

    setBypassCSP

    https://puppeteer.com.cn/api/puppeteer.page.setbypasscsp

    page.setRequestInterception(true);

    官方也提供了例子,这里就不提多讲了



    转载本站文章《Puppeteer跨域策略CSP绕过设置》,
    请注明出处:https://www.zhoulujun.cn/html/webfront/browser/Puppeteer/9435.html