Skip to content

Commit 9127e39

Browse files
committed
Update CSP for Cloudflare Insights and cleanup login
Expanded Content Security Policy to allow Cloudflare Insights pixel and beacon for analytics. Also removed 'loggedOut' from localStorage after successful login or registration to ensure proper session state.
1 parent 33266ff commit 9127e39

2 files changed

Lines changed: 8 additions & 3 deletions

File tree

backend/app.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -72,11 +72,14 @@ def set_security_headers(resp):
7272
# Basic hardening; allow required third-party origins used in app
7373
csp_parts = [
7474
"default-src 'self'",
75-
"img-src 'self' data:",
75+
# Allow self + data URLs + Cloudflare Insights pixel if used
76+
"img-src 'self' data: https://cloudflareinsights.com",
7677
"font-src 'self' https://cdnjs.cloudflare.com data:",
7778
"style-src 'self' https://cdnjs.cloudflare.com 'unsafe-inline'",
78-
"script-src 'self' https://cdnjs.cloudflare.com https://challenges.cloudflare.com 'unsafe-inline'",
79-
"connect-src 'self'",
79+
# Allow Cloudflare Turnstile + Cloudflare Insights beacon
80+
"script-src 'self' https://cdnjs.cloudflare.com https://challenges.cloudflare.com https://static.cloudflareinsights.com 'unsafe-inline'",
81+
# Permit outgoing analytics beacons
82+
"connect-src 'self' https://cloudflareinsights.com",
8083
"frame-src 'self' https://challenges.cloudflare.com",
8184
"object-src 'none'",
8285
"base-uri 'self'",

backend/templates/login.html

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,7 @@ <h4 class="modal-title" id="fpTitle" style="margin:0">找回密码</h4>
140140
const password = document.getElementById('password').value;
141141
try{
142142
await post('/api/auth/login', { email, password });
143+
try{ localStorage.removeItem('loggedOut'); }catch{}
143144
location.href = '/';
144145
}catch(e){ msg.textContent = '登录失败:'+e.message }
145146
}
@@ -150,6 +151,7 @@ <h4 class="modal-title" id="fpTitle" style="margin:0">找回密码</h4>
150151
const password = document.getElementById('password').value;
151152
try{
152153
await post('/api/auth/register', { email, password });
154+
try{ localStorage.removeItem('loggedOut'); }catch{}
153155
location.href = '/';
154156
}catch(e){ msg.textContent = '注册失败:'+e.message }
155157
};

0 commit comments

Comments
 (0)