mirror of
https://github.com/Pandipipas/scoreko-electron-dev.git
synced 2026-06-06 05:32:06 +00:00
refactor: update security policies in window creation and enhance loading page CSP
This commit is contained in:
@@ -22,7 +22,7 @@ export function createMainWindow({
|
||||
const windowOptions = createWindowOptions({ allowDevTools, appConfig, rootPath, isLoadingWindow: false });
|
||||
const window = new BrowserWindow(windowOptions);
|
||||
|
||||
denyPermissionsByDefault(window);
|
||||
applySecurityPolicies(window, allowDevTools);
|
||||
window.setMenuBarVisibility(false);
|
||||
|
||||
window.webContents.setWindowOpenHandler(({ url }) => {
|
||||
@@ -65,7 +65,7 @@ export function createLoadingWindow({
|
||||
}: Omit<WindowServiceDependencies, "mainDashboardUrl">): BrowserWindow {
|
||||
const window = new BrowserWindow(createWindowOptions({ allowDevTools, appConfig, rootPath, isLoadingWindow: true }));
|
||||
|
||||
denyPermissionsByDefault(window);
|
||||
applySecurityPolicies(window, allowDevTools);
|
||||
|
||||
window.on("page-title-updated", (event) => {
|
||||
event.preventDefault();
|
||||
@@ -123,8 +123,25 @@ function createWindowOptions({
|
||||
};
|
||||
}
|
||||
|
||||
function denyPermissionsByDefault(window: BrowserWindow): void {
|
||||
function applySecurityPolicies(window: BrowserWindow, allowDevTools: boolean): void {
|
||||
window.webContents.session.setPermissionRequestHandler((_webContents, _permission, callback) => {
|
||||
callback(false);
|
||||
});
|
||||
|
||||
window.webContents.session.webRequest.onHeadersReceived((details, callback) => {
|
||||
callback({
|
||||
responseHeaders: {
|
||||
...details.responseHeaders,
|
||||
"Content-Security-Policy": [
|
||||
"default-src 'self' 'unsafe-inline' 'unsafe-eval' data: http://localhost:* http://127.0.0.1:*; connect-src * ws: wss:; img-src * data: blob:; media-src * data: blob:; font-src * data:;"
|
||||
]
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
if (!allowDevTools) {
|
||||
window.webContents.on("devtools-opened", () => {
|
||||
window.webContents.closeDevTools();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user