and extracts the following text as a script body — the dev server then fails its dependency scan with `Expected ";" but found "non"` from the words "non-allowlisted hosts", which breaks e2e. So, what this buys, so nobody reads more or less into it: blocks external `script src=` from non-allowlisted hosts blocks injected inline scripts — each one is pinned by hash blocks fetch/XHR/WebSocket exfiltration (connect-src allowlist) blocks form-action, base-uri, object-src vectors does not stop image-based exfiltration — img-src must allow https: because event media comes from arbitrary publishers' og:image The cost of hashing is that an inline script edited after the hashes are computed is silently refused by the browser. That is why the violation reporter below exists: report-uri/report-to are ignored in a meta element and Pages serves no CSP header, so violations are caught in-page and sent to PostHog instead (src/lib/csp-report.ts, #241). frame-ancestors is deliberately NOT in this string: it is ignored in a meta element and browsers log a warning about it on every page load. It lives in public/_headers instead, ready for a CDN in front of Pages. X-Frame-Options (set there too) is the clickjacking control that actually applies today. */ }
diplomacy

Ethiopia and Eritrea Take Competing Claims to UN Security Council

| Ethiopia Conflict

Ethiopia told the UN Security Council it is taking self-defense measures against Eritrea, accusing Asmara of an 'all-out invasion' with troops reportedly pushed up to about 60 km into Tigray. Eritrea asked the Council to condemn Ethiopia's 'declaration of war' and take deterrent measures, calling the incursion claims a pretext. Both claims are unverified independently.

Eritrean Foreign Minister Osman Saleh
Eritrean Foreign Minister Osman Saleh — Al Jazeera