You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+6-2Lines changed: 6 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -66,7 +66,7 @@ Output goes to `dist/`.
66
66
- Rate limiting with exponential backoff on failed password attempts (persisted across restarts)
67
67
- Password strength enforcement: 10+ chars, 3/4 character classes, dictionary check against 160+ common passwords
68
68
69
-
### Content Security Policy
69
+
### Content Security Policy (Renderer)
70
70
71
71
```
72
72
default-src 'none';
@@ -77,7 +77,9 @@ img-src 'self' data:;
77
77
connect-src 'none';
78
78
```
79
79
80
-
All scripts and fonts loaded from local `lib/` directory. Zero CDN dependencies at runtime. `connect-src 'none'` blocks any outbound fetch/XHR even if code is injected.
80
+
All scripts and fonts loaded from local `lib/` directory. Zero CDN dependencies at runtime. `connect-src 'none'` blocks any outbound fetch/XHR from the renderer process, even if code is injected.
81
+
82
+
**Note:** The auto-updater runs in the main process (not governed by the renderer's CSP) and makes a single HTTPS request to GitHub Releases on launch to check for new versions. This can be disabled in File → Settings.
81
83
82
84
### Additional Hardening
83
85
@@ -88,6 +90,8 @@ All scripts and fonts loaded from local `lib/` directory. Zero CDN dependencies
88
90
- DOMPurify sanitizes all note content on load and paste
89
91
- Export dialogs warn about unencrypted output
90
92
- Print dialogs warn for password-protected notebooks
93
+
- Config keys allowlisted — renderer can only write known settings
94
+
- CI actions pinned to commit SHAs to prevent supply-chain attacks
0 commit comments