Skip to content

Commit eed4756

Browse files
committed
feat: @electron/fusesを使用してセキュリティを向上させる
TODO: 次の機能の有効化の判断が必要 - cookieEncryption - embeddedAsarIntegrityValidation
1 parent cb5badc commit eed4756

File tree

4 files changed

+32
-4
lines changed

4 files changed

+32
-4
lines changed

build/afterPack.ts

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
import { FuseConfig, FuseV1Options, FuseVersion } from "@electron/fuses";
2+
import { AfterPackContext } from "electron-builder";
3+
4+
export default async function afterPack(context: AfterPackContext) {
5+
// @electron/fusesで特定の機能や制限を有効化/無効化
6+
const fuses: FuseConfig = {
7+
version: FuseVersion.V1,
8+
[FuseV1Options.RunAsNode]: false,
9+
[FuseV1Options.EnableNodeOptionsEnvironmentVariable]: false,
10+
[FuseV1Options.EnableNodeCliInspectArguments]: false,
11+
[FuseV1Options.OnlyLoadAppFromAsar]: true,
12+
[FuseV1Options.GrantFileProtocolExtraPrivileges]: false,
13+
};
14+
await context.packager.addElectronFuses(context, fuses);
15+
}

build/electronBuilderConfig.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import { config } from "dotenv";
44
import { Configuration as ElectronBuilderConfiguration } from "electron-builder";
55
import { z } from "zod";
66
import afterAllArtifactBuild from "./afterAllArtifactBuild";
7+
import afterPack from "./afterPack";
78
import artifactBuildCompleted from "./artifactBuildCompleted";
89

910
const rootDir = path.join(import.meta.dirname, "..");
@@ -110,6 +111,7 @@ const builderOptions: ElectronBuilderConfiguration = {
110111
appId: "jp.hiroshiba.voicevox",
111112
copyright: "Hiroshiba Kazuyuki",
112113
afterAllArtifactBuild,
114+
afterPack,
113115
artifactBuildCompleted,
114116
win: {
115117
icon: "public/icon.png",

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,7 @@
8787
},
8888
"devDependencies": {
8989
"@chromatic-com/storybook": "4.0.1",
90+
"@electron/fuses": "2.0.0",
9091
"@eslint/eslintrc": "3.3.1",
9192
"@eslint/js": "9.29.0",
9293
"@openapitools/openapi-generator-cli": "2.20.5",

pnpm-lock.yaml

Lines changed: 14 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)