recherche: jeton URL_AGENT + connect-src agent pour la page /recherche
This commit is contained in:
+12
-7
@@ -966,12 +966,15 @@ if FRONTEND_DIR.exists():
|
||||
|
||||
frontend/recherche.html est servi avec les jetons {{URL_*}}
|
||||
remplacés par urls_publiques() (même contrat que le fragment
|
||||
de barre) et le nonce CSP frais ; la réponse pose sa propre
|
||||
CSP (préservée par SecurityHeadersMiddleware, qui ne la pose
|
||||
que si elle est absente) dont le connect-src autorise les
|
||||
origines sœurs — sinon le navigateur bloquerait les appels
|
||||
sœurs avant même CORS. La CSP par défaut (same-origin) reste
|
||||
inchangée pour toutes les autres pages.
|
||||
de barre, jeton {{URL_AGENT}} inclus pour l'onglet Console
|
||||
Spark de la barre re-vendangée) et le nonce CSP frais ; la
|
||||
réponse pose sa propre CSP (préservée par
|
||||
SecurityHeadersMiddleware, qui ne la pose que si elle est
|
||||
absente) dont le connect-src autorise les origines sœurs ET
|
||||
l'origine de l'agent — sinon le navigateur bloquerait les
|
||||
appels sœurs et l'appel console (onglet Console Spark,
|
||||
GET /api/v1/recherche) avant même CORS. La CSP par défaut
|
||||
(same-origin) reste inchangée pour toutes les autres pages.
|
||||
"""
|
||||
import json as _json
|
||||
|
||||
@@ -989,6 +992,7 @@ if FRONTEND_DIR.exists():
|
||||
("{{URL_FLOWDECK}}", "flowdeck"),
|
||||
("{{URL_TIKTAK}}", "tiktak"),
|
||||
("{{URL_KANBANTE}}", "kanbante"),
|
||||
("{{URL_AGENT}}", "agent"),
|
||||
):
|
||||
html = html.replace(jeton, urls.get(cle, ""))
|
||||
script = (
|
||||
@@ -1003,7 +1007,8 @@ if FRONTEND_DIR.exists():
|
||||
html = inject_csp_nonce(html, request.state.csp_nonce)
|
||||
soeurs = " ".join(sorted({
|
||||
origin_of(urls.get(cle, "")) or ""
|
||||
for cle in ("obsigate", "flowdeck", "tiktak", "kanbante")
|
||||
for cle in ("obsigate", "flowdeck", "tiktak", "kanbante",
|
||||
"agent")
|
||||
} - {""}))
|
||||
csp = (
|
||||
"default-src 'self'; "
|
||||
|
||||
Reference in New Issue
Block a user