From 0dac77773af082da403af27dc3ab8d4ab7571b16 Mon Sep 17 00:00:00 2001 From: ulsklyc <108589275+ulsklyc@users.noreply.github.com> Date: Tue, 24 Mar 2026 23:01:08 +0100 Subject: [PATCH] =?UTF-8?q?security:=20MIT-Lizenz,=20.gitignore=20h=C3=A4r?= =?UTF-8?q?ten,=20Fail-Fast=20f=C3=BCr=20SESSION=5FSECRET?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - LICENSE: MIT-Lizenz (bereits vorhanden, korrekt) - package.json: "license": "MIT" ergänzt - README.md: Lizenz-Badge auf MIT aktualisiert, Lizenz-Sektion angepasst - .gitignore: .claude/ und *.txt hinzugefügt (verhindert versehentliches Committen von Claude Code Einstellungen und Token-Textdateien) - server/auth.js: Fail-Fast in Produktion wenn SESSION_SECRET fehlt; Fallback-String auf 'dev-only-secret-not-for-production' umbenannt (klarere Intention, kein bekannter Produktions-Wert im Public Repo) Co-Authored-By: Claude Sonnet 4.6 --- .gitignore | 6 ++++++ README.md | 4 ++-- package.json | 1 + server/auth.js | 6 +++++- 4 files changed, 14 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 0e22336..dc7aaaf 100644 --- a/.gitignore +++ b/.gitignore @@ -26,3 +26,9 @@ dist/ .idea/ *.swp *.swo + +# Claude Code (enthält lokale Berechtigungen und ggf. Tokens) +.claude/ + +# Textdateien mit Tokens/Keys (Sicherheitsnetz) +*.txt diff --git a/README.md b/README.md index 3d35c8a..f4fc05b 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ [![Docker](https://img.shields.io/badge/Docker-ready-2496ED?logo=docker&logoColor=white)](https://www.docker.com) [![SQLite](https://img.shields.io/badge/SQLite-SQLCipher%20verschlüsselt-003B57?logo=sqlite&logoColor=white)](https://www.zetetic.net/sqlcipher/) [![PWA](https://img.shields.io/badge/PWA-offline--fähig-5A0FC8?logo=pwa&logoColor=white)](https://web.dev/progressive-web-apps/) -[![Lizenz](https://img.shields.io/badge/Lizenz-privat-lightgrey)](./LICENSE) +[![Lizenz: MIT](https://img.shields.io/badge/Lizenz-MIT-yellow.svg)](./LICENSE) Alle Daten bleiben auf deinem eigenen Server. Kein Cloud-Zwang. Keine Datenweitergabe. Kein Tracking. @@ -284,4 +284,4 @@ docker compose up -d ## Lizenz -Privates Projekt — nicht für den öffentlichen Einsatz lizenziert. +[MIT](./LICENSE) © 2025 ulsklyc diff --git a/package.json b/package.json index 22c2e57..9e644fd 100644 --- a/package.json +++ b/package.json @@ -31,6 +31,7 @@ "googleapis": "^144.0.0", "tsdav": "^2.0.10" }, + "license": "MIT", "engines": { "node": ">=20.0.0" } diff --git a/server/auth.js b/server/auth.js index 91034ac..12ff479 100644 --- a/server/auth.js +++ b/server/auth.js @@ -31,9 +31,13 @@ const sessionStore = new SQLiteStore({ * Session-Middleware konfigurieren. * Wird in server/index.js eingebunden. */ +if (process.env.NODE_ENV === 'production' && !process.env.SESSION_SECRET) { + throw new Error('[Auth] SESSION_SECRET muss in der .env gesetzt sein (Produktion).'); +} + const sessionMiddleware = session({ store: sessionStore, - secret: process.env.SESSION_SECRET || 'dev-secret-AENDERN-IN-PRODUKTION', + secret: process.env.SESSION_SECRET || 'dev-only-secret-not-for-production', resave: false, saveUninitialized: false, name: 'oikos.sid',