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