Puppeteer跨域策略CSP绕过设置
Author:zhoulujun Date:
之前写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