Sicherheits-Härtung (v1.1.1) und aktuelle README
- nur http(s)-Links, Validierung/Limits für Remote-, Storage- und Importdaten - HTTP-Sync nur im lokalen Netz, keine Zugangsdaten in der URL - Berechtigung bei Serverwechsel entziehen, explizite CSP, UUID-IDs Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 5.5
parent
bb7ee831a8
commit
a04aaae859
+13
-2
@@ -34,16 +34,27 @@ $("cfg").addEventListener("submit", async (e) => {
|
||||
e.preventDefault();
|
||||
const cfg = { url: $("url").value.trim(), user: $("user").value.trim(), pass: $("pass").value };
|
||||
|
||||
let origin;
|
||||
try { origin = new URL(cfg.url).origin + "/*"; } catch { return status("> FEHLER: Ungültige URL.", "err"); }
|
||||
let check;
|
||||
try { check = LabSync.checkServerUrl(cfg.url); } catch (err) { return status("> FEHLER: " + err.message + ".", "err"); }
|
||||
const origin = check.origin + "/*";
|
||||
|
||||
// Muss direkt aus dem Klick heraus aufgerufen werden (Nutzergeste).
|
||||
const granted = await chrome.permissions.request({ origins: [origin] });
|
||||
if (!granted) return status("> FEHLER: Zugriff auf den Server wurde nicht erlaubt.", "err");
|
||||
|
||||
// Berechtigung für einen früher genutzten, anderen Server wieder entziehen
|
||||
const old = await LabSync.getConfig();
|
||||
if (old?.url) {
|
||||
try {
|
||||
const oldOrigin = new URL(old.url).origin + "/*";
|
||||
if (oldOrigin !== origin) await chrome.permissions.remove({ origins: [oldOrigin] });
|
||||
} catch {}
|
||||
}
|
||||
|
||||
await LabSync.setConfig(cfg);
|
||||
showConnected(true);
|
||||
await runSync();
|
||||
if (check.insecure) status($("status").textContent + " (Achtung: HTTP ohne Verschlüsselung – Passwort geht im Klartext durchs Netz.)", $("status").className);
|
||||
});
|
||||
|
||||
$("now").addEventListener("click", runSync);
|
||||
|
||||
Reference in New Issue
Block a user