diff --git a/README.md b/README.md index db7b9a2..54032f9 100644 --- a/README.md +++ b/README.md @@ -131,7 +131,7 @@ ChatSessionStorage (In-memory cache) ## 🧠 Frontend (JavaScript) -- đŸȘŸ **Din vĂ€g över Bifrost**: Session ID genereras automatiskt via `crypto.randomUUID()` och sparas i `localStorage.bifrost_session_id`, sĂ„ lĂ€nge du inte tömmer webblĂ€sarens cache +- đŸȘŸ **Din vĂ€g över Bifrost**: Session ID genereras automatiskt via `crypto.randomUUID()` och sparas i `sessionStorage.bifrost_session_id`, detta tillĂ„ter sidomladdning (refresh) utan att förlora chatten, men rensar sessionen nĂ€r fliken stĂ€ngs för bĂ€ttre sĂ€kerhet. - ⚓ **Heimdall Vaktar**: Default personlighet sĂ€tts i HTML och JS (`dom.personality.value = 'HEIMDALL'`) - ✉ **Skicka meddelande**: JavaScript anvĂ€nder `fetch()` POST till `/api/v1/chat` med AbortController för 15-sekunders timeout. Vid error visas tematiskt meddelande frĂ„n systemet (t.ex. "The Gods took too long to respond...") - 📜 **Runor frĂ„n Mnemosyne - Minnets gudinna**: @@ -142,7 +142,9 @@ ChatSessionStorage (In-memory cache) - đŸ—‘ïž **Clear-knappen**: Rensar chatthistorik för sessionen via `DELETE /api/v1/chat/{sessionId}`, Ă„terstĂ€ller personlighetsvalet till Heimdall, och visar bekrĂ€ftelseruta före borttagning SkĂ€rmbild 2026-05-12 015123 -- đŸ›Ąïž **XSS Protection**: All AI-genererad Markdown tvĂ€ttas via DOMPurify innan rendering för att förhindra skadlig kodinjektion. +- đŸ›Ąïž **SĂ€kerhet & XSS Protection**: + - All AI-genererad Markdown tvĂ€ttas via DOMPurify innan rendering för att förhindra skadlig kodinjektion. + - Subresource Integrity (SRI) anvĂ€nds för att verifiera att externa bibliotek frĂ„n CDN inte har manipulerats. --- diff --git a/src/main/resources/static/app.js b/src/main/resources/static/app.js index d579926..16114b0 100644 --- a/src/main/resources/static/app.js +++ b/src/main/resources/static/app.js @@ -1,8 +1,8 @@ const getSessionId = () => { - let id = localStorage.getItem('bifrost_session_id'); //Try to find the old sessionID or create a new one + let id = sessionStorage.getItem('bifrost_session_id'); //Try to find the old sessionID or create a new one if (!id) { id = crypto.randomUUID(); - localStorage.setItem('bifrost_session_id', id); + sessionStorage.setItem('bifrost_session_id', id); } return id; };