Security audit: fix XSS, missing function, improve SSH & URL handling
- Fix XSS: HTML-escape all user input (URLs, package names, errors, proxy data) - Fix NameError: add missing is_demo_link() function (called but undefined) - Fix: remove unused http_in fetch in proxies_get() - Security: mask API keys in log output (TMDB key no longer visible in logs) - Security: use known_hosts for SSH host key verification when available - Security: remove .env from git tracking, add .env.example template - Usability: add URL reachability check before submitting to JDownloader - Usability: add "Erledigte Jobs entfernen" button to clear finished/failed jobs - Usability: color-code job status (red for failed, green for finished) - Docs: add security section to README (known_hosts, HTTPS, .env) https://claude.ai/code/session_01S774Pqazr2U8vkSyhUBgDs
This commit is contained in:
12
README.md
12
README.md
@@ -11,7 +11,7 @@ Web GUI to:
|
||||
|
||||
## Files
|
||||
- `docker-compose.yml` – stack
|
||||
- `.env.example` – copy to `.env` and fill values
|
||||
- `.env.example` – copy to `.env` and fill in your values (**never commit `.env`!**)
|
||||
- `jd-webgui/app.py` – FastAPI web app
|
||||
- `jd-webgui/Dockerfile` – includes ffprobe
|
||||
|
||||
@@ -40,6 +40,16 @@ docker compose up -d --build
|
||||
- If `MYJD_DEVICE` is empty, the WebGUI will automatically pick the first available device.
|
||||
- Ensure the SSH user can write to `/jellyfin/Filme` (and series dir if used).
|
||||
|
||||
## Security
|
||||
- **Never commit `.env`** – it contains passwords and API keys. Only `.env.example` is tracked.
|
||||
- **SSH host key verification**: For secure SFTP transfers, provide a `known_hosts` file:
|
||||
```bash
|
||||
ssh-keyscan -p 22 192.168.1.1 > known_hosts
|
||||
```
|
||||
Mount it in `docker-compose.yml` and set `SSH_KNOWN_HOSTS=/ssh/known_hosts`.
|
||||
Without it, any host key is accepted (MITM risk on untrusted networks).
|
||||
- **Basic Auth** protects the WebGUI but transmits credentials in cleartext over HTTP. Use a reverse proxy with HTTPS (e.g. Traefik, Caddy) in production.
|
||||
|
||||
## Troubleshooting
|
||||
- Device not found: list devices
|
||||
```bash
|
||||
|
||||
Reference in New Issue
Block a user