- ✅ Ingen token-loggning - Tokens loggas ALDRIG i klartext i console
- ✅ Token-längd visas - Endast längd visas för debugging (t.ex. "✓ (1234 chars)")
- ✅ Session-baserad - Använder MSAL tokens från sessionStorage (ej localStorage)
- ✅ Inga externa API:er - Token skickas ENDAST till Azure Management API
- ✅ Secure cleanup - Token nullas efter varje operation (overwrite → null)
- ✅ Auto-cleanup - Token rensas när popup stängs (
beforeunload)
- ✅ Subscription ID - Valideras mot GUID-format (8-4-4-4-12 hexadecimala tecken)
- ✅ Resource Group - Endast alfanumeriska tecken, bindestreck och understreck
- ✅ App Name - Endast alfanumeriska tecken, bindestreck och understreck
- ✅ Function Names - Valideras mot regex:
/^[a-zA-Z0-9-_]+$/
- ✅ DOM API - Använder
document.createElement()ochtextContent(INTE innerHTML med user data) - ✅ HTML Escaping - Funktion
escapeHtml()finns för framtida användning - ✅ Ingen eval() - Ingen dynamisk kod-exekvering
- ✅ Säkerhetsbekräftelser - Dubbel-check vid bulk operations
- ✅ App Name i dialog - Visar vilken Function App som påverkas
- ✅ URL-validering - Säkerställer att endast portal.azure.com kan trigga extension
{
"permissions": ["tabs", "activeTab", "scripting", "storage"],
"host_permissions": [
"https://portal.azure.com/*",
"https://management.azure.com/*"
]
}- ✅ Endast Azure Portal och Azure Management API
- ✅ Inga
<all_urls>eller wildcard permissions
- ✅ 0 npm packages - 100% vanilla JavaScript
- ✅ Inga CDN:er - Ingen extern kod laddas in
- ✅ Ingen analytics - Ingen data skickas till tredje part
- ✅ Ingen auto-load - Gör INGA API-anrop när popup öppnas
- ✅ Explicit knapp - Användaren MÅSTE klicka "Ladda funktioner" först
- ✅ *Parsa URL från Azure Portal (ingen nätverkstrafik)
- ✅ Läsa tokens från sessionStorage (endast när du klickar "Ladda funktioner")
- ✅ Uppdatera Function App settings (samma behörigheter som din Azure-användare)
- ✅ Lista dina funktioner (READ access - efter explicit tillåtelse
- ✅ Unique Request IDs -
x-ms-client-request-id: crypto.randomUUID() - ✅ Conditional updates -
If-Match: *header för att förhindra race conditions - ✅ Azure-only endpoints - CSP begränsar connect-src till Azure domäner
- ✅ Läsa tokens från Azure Portal session (endast när du är inloggad)
- ✅ Uppdatera Function App settings (samma behörigheter som din Azure-användare)
- ✅ Lista dina funktioner (READ access)
- ❌ Vad extensionen INTE KAN göra:
- ❌ Komma åt andra tabs eller webbplatser
- ❌ Läsa känslig data från andra appar
- ❌ Skicka data till externa servrar
- ❌ Utföra åtgärder utan din bekräftelse (vid bulk operations)
- ❌ Fungera om du inte är inloggad i Azure Portal
- Verifiera alltid Function App namn innan bulk operations
- Logga ut från Azure Portal när du inte använder det
- Granska ändringar i Azure Portal efter bulk updates
- Använd test-miljöer först innan produktion
- Aldrig logga tokens - Använd endast längd eller substring
- Validera alla inputs - Regex-validering av namn och ID:n
- Använd DOM API - INTE innerHTML med user-generated content
- Minsta permissions - Be endast om vad som behövs
- Background worker - Håll långvariga operationer borta från popup
| Hot | Risk | Mitigation | |---Token in memory** | 🟡 MEDEL | ✅ Fixat - Overwrite + null efter ops | | Auto-execution | 🟡 MEDEL | ✅ Fixat - Explicit "Ladda funktioner" knapp | | XSS via function names | 🟡 MEDEL | ✅ Fixat - DOM API + validering | | URL injection | 🟡 MEDEL | ✅ Fixat - Regex-validering | | Fel Function App uppdateras | 🟡 MEDEL | ✅ Fixat - Bekräftelsedialog | | Malicious npm package | 🔴 HÖG | ✅ N/A - Inga dependencies | | CSRF attack | 🟡 MEDEL | ✅ Fixat - Unique request ID | Fel Function App uppdateras | 🟡 MEDEL | ✅ Fixat - Bekräftelsedialog | | Malicious npm package | 🔴 HÖG | ✅ N/A - Inga dependencies | | MITM attack | 🟢 LÅG | ✅ HTTPS-only, Azure's TLS | | **ObTokens nullas säkert efter varje operation
- Auto-cleanup när popup stängs (beforeunload)
- INGA API-anrop vid popup open (explicit "Ladda funktioner" knapp)
- All user input valideras med regex
- Inga external dependencies (npm/CDN)
- Endast nödvändiga permissions
- Content Security Policy (CSP) aktiverad
- HTTPS-only kommunikation
- Bekräftelser vid kritiska operationer
- DOM API används (inte innerHTML)
- Background worker för långvariga tasks
- CSRF-skydd (unique request IDs)
- Felhantering utan känslig data
- Minimal attack surface
- Zero Trust - explicit användarsamtycke för alla åtgärderon
- Bekräftelser vid kritiska operationer
- DOM API används (inte innerHTML)
- Background worker för långvariga tasks
- Felhantering utan känslig data
- Minimal attack surface
Om du hittar ett säkerhetsproblem:
- Använd INTE extensionen för produktion tills det är fixat
- Dokumentera: Steg för att reproducera
- Skicka rapport direkt till utvecklaren
- Inkludera INTE tokens eller känslig data i rapporten
Senast uppdaterad: 2026-01-20
Version: 1.0.0
Säkerhetsnivå: ⭐⭐⭐⭐⭐ (5/5)