Skip to content

Instantly share code, notes, and snippets.

@kyouheicf
Last active October 18, 2023 03:26
Show Gist options
  • Select an option

  • Save kyouheicf/afef0775d561ffa265989021b2391fd7 to your computer and use it in GitHub Desktop.

Select an option

Save kyouheicf/afef0775d561ffa265989021b2391fd7 to your computer and use it in GitHub Desktop.
// npm install puppeteer puppeteer-extra puppeteer-extra-plugin-user-preferences
const puppeteer = require('puppeteer-extra');
const ppUserPrefs = require('puppeteer-extra-plugin-user-preferences');
puppeteer.use(ppUserPrefs({
userPrefs: {
devtools: {
preferences: {
'InspectorView.splitViewState': JSON.stringify({
vertical: { size: 1500 },
horizontal: { size: 0 },
}),
uiTheme: '"dark"',
'panel-selectedTab': '"resources"',
'resourcesLastSelectedElementPath': JSON.stringify([
"reportingApi://"
])
},
},
},
}));
puppeteer.launch({
headless: false,
devtools: true,
product: 'chrome',
args: [
"--short-reporting-delay",
"--auto-open-devtools-for-tabs",
"--disable-extensions"
]
}).then(async browser => {
const page = await browser.newPage();
await page.setCacheEnabled(false);
await page.waitForTimeout(3000);
// first access
let response = await page.goto('https://your-domain.example.com/pageshieldforcecsp00.html', {
waitUntil: "load",
});
let headers = response.headers();
await page.waitForTimeout(3000);
if (/cf-csp-endpoint/.test(headers["content-security-policy-report-only"])) {
console.log(headers["content-security-policy-report-only"]);
console.log(headers["report-to"]);
await page.close();
await browser.close();
return
}
for (i = 1; i < 20; i++) {
// second access
await page.setCacheEnabled(false);
response = await page.reload({
waitUntil: "load",
})
headers = response.headers();
await page.waitForTimeout(3000);
if (/cf-csp-endpoint/.test(headers["content-security-policy-report-only"])) {
console.log(headers["content-security-policy-report-only"]);
console.log(headers["report-to"]);
await page.close();
await browser.close();
return
}
}
await page.close();
await browser.close();
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment