generated from knso/webklar-preview-template
Web-Demo Fix: geteilte Anschluesse blockierten den ersten Versuch
Fehler: Der anonyme Erst-Versuch war auf 1 pro IP (30 Tage) begrenzt. Teilen sich mehrere Menschen eine Leitung (Familie, WLAN, Mobilfunk/CGNAT), bekam der Zweite sofort 'E-Mail noetig' statt einer Analyse. Trat auch beim Testen ueber denselben Anschluss auf. - IP- und Anon-Zaehler jetzt TAEGLICH (Datum im Schluessel), 48h TTL - Anonyme Erst-Analysen pro Anschluss/Tag: 3 (statt 1/30 Tage) - IP-Gesamtlimit pro Tag: 8 (statt 3/30 Tage) - 'Wallet'-Schutz unveraendert: globales Tagesbudget 100 + Turnstile + E-Mail-Hash (dauerhaft 1x/Adresse) - Client: email_noetig markiert den Browser NICHT mehr als verbraucht (sonst dauerhafte Blockade ohne gelungene Analyse); localStorage-Key auf 'bk_demo_v2' umbenannt -> setzt falsche Testphasen-Staende zurueck Ende-zu-Ende verifiziert: frischer Erst-Upload liefert wieder das Ergebnis. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -339,8 +339,11 @@
|
||||
var eingabe = document.getElementById('eingabe');
|
||||
var fehlerBox = document.getElementById('fehler');
|
||||
|
||||
function benutzt() { return parseInt(localStorage.getItem('bk_demo_benutzt') || '0', 10); }
|
||||
function setzeBenutzt(n) { localStorage.setItem('bk_demo_benutzt', String(n)); }
|
||||
// Schlüsselname bewusst 'v2': setzt evtl. falsch gezählte Stände (aus der
|
||||
// Testphase) bei bestehenden Besuchern automatisch einmalig zurück.
|
||||
var SPEICHER_SCHLUESSEL = 'bk_demo_v2';
|
||||
function benutzt() { return parseInt(localStorage.getItem(SPEICHER_SCHLUESSEL) || '0', 10); }
|
||||
function setzeBenutzt(n) { localStorage.setItem(SPEICHER_SCHLUESSEL, String(n)); }
|
||||
|
||||
function zeigeStand() {
|
||||
// 2. Versuch: E-Mail-Feld einblenden; alles verbraucht: Eingabe sperren
|
||||
@@ -445,7 +448,10 @@
|
||||
eingabe.style.display = 'block';
|
||||
if (window.turnstile) window.turnstile.reset();
|
||||
if (daten.code === 'email_noetig') {
|
||||
setzeBenutzt(Math.max(benutzt(), 1));
|
||||
// Nur das E-Mail-Feld zeigen — NICHT als verbraucht markieren.
|
||||
// (Sonst würde ein serverseitiges "E-Mail nötig", z. B. bei
|
||||
// geteiltem Anschluss, den Browser dauerhaft blockieren, obwohl
|
||||
// gar keine Analyse gelungen ist.)
|
||||
emailTeil.style.display = 'block';
|
||||
emailFeld.focus();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user