diff --git a/README.md b/README.md index ba851ef..cd2f277 100644 --- a/README.md +++ b/README.md @@ -48,6 +48,16 @@ Content-Security-Policy: require-trusted-types-for 'script'; trusted-types defau /> ``` +...or, when you can place neither, let DOMFortify inject that `` for you with one config flag: + +```js +window.DOMFortifyConfig = { INJECT_META: true }; +``` + +This is best-effort and only takes when DOMFortify runs during the initial parse (inline, first thing +in `
`); a header or hand-placed `` is still sturdier. Confirm it took with +`status().enforcementActive`. Details in [Turning enforcement on](#turning-enforcement-on-advanced). + Second, load the sanitizer and then DOMFortify **first thing in ``**, before anything an attacker could reach. Pin both with SRI so a bad CDN day fails closed instead of open: diff --git a/dist/fortify.cjs.js b/dist/fortify.cjs.js index edff658..ae5bbcc 100644 --- a/dist/fortify.cjs.js +++ b/dist/fortify.cjs.js @@ -227,8 +227,20 @@ function init(options = {}) { if (installed) return cachedStatus; installed = true; + // The violation reporter is observability, never control flow. Wrap it so a throwing ON_VIOLATION + // can neither abort init() (which would leave us installed with a null status) nor turn a + // fail-closed sink - one that should quietly return null - into a thrown exception. const onv = cfg(options, 'ON_VIOLATION'); - const report = typeof onv === 'function' ? onv : () => { }; + const report = typeof onv === 'function' + ? (code, detail) => { + try { + onv(code, detail); + } + catch { + /* a misbehaving reporter must never break the policy */ + } + } + : () => { }; const status = { version: VERSION, ttSupported: !!TT, @@ -243,9 +255,11 @@ function init(options = {}) { const done = (reason, code) => { status.protected = status.defaultPolicyOwned && status.enforcementActive && status.sanitizerReady; status.reason = reason; - if (code) - report(code, status); + // Freeze the snapshot first, then report it: the reporter sees exactly the authoritative status + // that gets cached and returned, and has no window to mutate the cached copy. cachedStatus = Object.freeze({ ...status }); + if (code) + report(code, cachedStatus); return cachedStatus; }; const url = loc && typeof loc.href !== 'undefined' ? String(loc.href) : ''; diff --git a/dist/fortify.cjs.js.map b/dist/fortify.cjs.js.map index c1974ee..ea0cdc4 100644 --- a/dist/fortify.cjs.js.map +++ b/dist/fortify.cjs.js.map @@ -1 +1 @@ -{"version":3,"file":"fortify.cjs.js","sources":["../src/internal.ts","../src/fortify.ts"],"sourcesContent":[null,null],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"fortify.cjs.js","sources":["../src/internal.ts","../src/fortify.ts"],"sourcesContent":[null,null],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/fortify.es.mjs b/dist/fortify.es.mjs index 1eae0c7..5dd9143 100644 --- a/dist/fortify.es.mjs +++ b/dist/fortify.es.mjs @@ -223,8 +223,20 @@ function init(options = {}) { if (installed) return cachedStatus; installed = true; + // The violation reporter is observability, never control flow. Wrap it so a throwing ON_VIOLATION + // can neither abort init() (which would leave us installed with a null status) nor turn a + // fail-closed sink - one that should quietly return null - into a thrown exception. const onv = cfg(options, 'ON_VIOLATION'); - const report = typeof onv === 'function' ? onv : () => { }; + const report = typeof onv === 'function' + ? (code, detail) => { + try { + onv(code, detail); + } + catch { + /* a misbehaving reporter must never break the policy */ + } + } + : () => { }; const status = { version: VERSION, ttSupported: !!TT, @@ -239,9 +251,11 @@ function init(options = {}) { const done = (reason, code) => { status.protected = status.defaultPolicyOwned && status.enforcementActive && status.sanitizerReady; status.reason = reason; - if (code) - report(code, status); + // Freeze the snapshot first, then report it: the reporter sees exactly the authoritative status + // that gets cached and returned, and has no window to mutate the cached copy. cachedStatus = Object.freeze({ ...status }); + if (code) + report(code, cachedStatus); return cachedStatus; }; const url = loc && typeof loc.href !== 'undefined' ? String(loc.href) : ''; diff --git a/dist/fortify.es.mjs.map b/dist/fortify.es.mjs.map index 6b56a43..0e1a0fa 100644 --- a/dist/fortify.es.mjs.map +++ b/dist/fortify.es.mjs.map @@ -1 +1 @@ -{"version":3,"file":"fortify.es.mjs","sources":["../src/internal.ts","../src/fortify.ts"],"sourcesContent":[null,null],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"fortify.es.mjs","sources":["../src/internal.ts","../src/fortify.ts"],"sourcesContent":[null,null],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/fortify.js b/dist/fortify.js index be3f02a..99cd7aa 100644 --- a/dist/fortify.js +++ b/dist/fortify.js @@ -226,8 +226,20 @@ if (installed) return cachedStatus; installed = true; + // The violation reporter is observability, never control flow. Wrap it so a throwing ON_VIOLATION + // can neither abort init() (which would leave us installed with a null status) nor turn a + // fail-closed sink - one that should quietly return null - into a thrown exception. const onv = cfg(options, 'ON_VIOLATION'); - const report = typeof onv === 'function' ? onv : () => { }; + const report = typeof onv === 'function' + ? (code, detail) => { + try { + onv(code, detail); + } + catch { + /* a misbehaving reporter must never break the policy */ + } + } + : () => { }; const status = { version: VERSION, ttSupported: !!TT, @@ -242,9 +254,11 @@ const done = (reason, code) => { status.protected = status.defaultPolicyOwned && status.enforcementActive && status.sanitizerReady; status.reason = reason; - if (code) - report(code, status); + // Freeze the snapshot first, then report it: the reporter sees exactly the authoritative status + // that gets cached and returned, and has no window to mutate the cached copy. cachedStatus = Object.freeze({ ...status }); + if (code) + report(code, cachedStatus); return cachedStatus; }; const url = loc && typeof loc.href !== 'undefined' ? String(loc.href) : ''; diff --git a/dist/fortify.js.map b/dist/fortify.js.map index c58fc7b..9cf196e 100644 --- a/dist/fortify.js.map +++ b/dist/fortify.js.map @@ -1 +1 @@ -{"version":3,"file":"fortify.js","sources":["../src/internal.ts","../src/fortify.ts","../src/auto.ts"],"sourcesContent":[null,null,null],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"fortify.js","sources":["../src/internal.ts","../src/fortify.ts","../src/auto.ts"],"sourcesContent":[null,null,null],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/fortify.min.js b/dist/fortify.min.js index 97a9ccf..b56e0a1 100644 --- a/dist/fortify.min.js +++ b/dist/fortify.min.js @@ -1,3 +1,3 @@ /*! DOMFortify 0.2.0 | (c) Cure53 and contributors | (MPL-2.0 OR Apache-2.0) */ -!function(){"use strict";const t=Object.prototype.hasOwnProperty;function e(e,n){return null!=e&&t.call(e,n)}function n(t,n){return e(t,n)?t[n]:void 0}function r(t){return String(t).slice(0,80)}function i(t){return String(t?.message)}function o(t,e){if(null==t)return!1;const n=Array.isArray(t)?t:[t];for(let t=0;t