Biztonság
| Felület | Védelem |
|---|---|
| Localhost HTTP (fő REST API) | Csak 127.0.0.1 bind (nem 0.0.0.0), 32 bájt random Bearer token, konstans-idejű összehasonlítás |
| CSRF / DNS rebinding | Origin és Host fejléc ellenőrzés; csak 127.0.0.1:<port> fogadható el |
MCP HTTP (:8420/mcp) | Tudatos kivétel — külön listener, nincs Bearer token, nincs Origin-ellenőrzés. A védelem kizárólag a loopback-kötés (lásd lent). |
| Electron renderer | contextIsolation: true, nodeIntegration: false, sandbox: true, szigorú CSP, preload fehérlistával |
| Token átadás | contextBridge-en, nem URL query-ben |
| Fájlrendszer | Az engine csak a megnyitott projekt gyökere alatt ír; path traversal ellenőrzés minden útvonalon |
| Team daemon | TLS (self-signed vagy Let's Encrypt), session token, jelszó argon2id |
| Licenc | Ed25519 aláírt entitlement, beágyazott publikus kulcs, óra-visszaállítás elleni monoton számláló |
| Kimenő forgalom | Alapból semmi. Kivétel: licenc-aktiválás/validáció és (opt-in) frissítés-ellenőrzés — a settings.json-ban kikapcsolható. |
| Frissítés | Aláírt csomagok, aláírás-ellenőrzés telepítés előtt |
Az MCP HTTP végpont tudatos kivétele
A :8420/mcp végpont szándékosan nem kéri a fő API Bearer tokenjét, és nem ellenőrzi az
Origin-t. Külön HTTP listener-en fut, a token-védett REST API-tól elkülönítve.
A biztonsági határ a loopback-kötés: 127.0.0.1, külső hálózati kérést nem fogad. Ha
valaki 127.0.0.1-en el tudja érni ezt a gépet, MCP-n keresztül is olvashatja/módosíthatja a
projekt Work Package-eit. Ez ugyanaz a bizalmi modell, mint minden más „csak helyben fut"
AI-szerveré (pl. Ollama a :11434-en). Az ok: bármelyik helyi MCP-kliens (Claude Desktop,
Claude Code, Antigravity) kapcsolódni tudjon anélkül, hogy előbb az Electron folyamattól
kellene portot/tokent kérnie.
A HTTP MCP transport ettől függetlenül token-védhető a --mcp-token flag-gel — az Electron
egy gépenként állandó, perzisztált tokent ad át, amire a verziózott .mcp.json a
CRAFTINGTABLE_MCP_TOKEN környezeti változón keresztül hivatkozhat. Lásd
MCP → Beállítás és config.
A „0 hálózati csomag" ígéret bizonyítása
Integrációs teszt, ami hálózati namespace-ben / tcpdump-pal futtatja a szerkesztési és
generálási folyamatot, és elbukik, ha bármilyen kimenő csomag keletkezik. Ez CI-ban fut
(go test -tags=offline ./internal/nettest/...), és a marketing is erre hivatkozhat.