add section on securing fillOdtTemplate
This commit is contained in:
parent
44221b4255
commit
5e1b0b3da4
13
readme.md
13
readme.md
@ -125,6 +125,19 @@ There are also loops in the form:
|
|||||||
They can be used to generate lists or tables in .odt files from data and a template using this syntax
|
They can be used to generate lists or tables in .odt files from data and a template using this syntax
|
||||||
|
|
||||||
|
|
||||||
|
#### Securing calls to fillOdtTemplate
|
||||||
|
|
||||||
|
`fillOdtTemplate` evaluate arbitrary JavaScript code in `{#each <collection> as élément}` and `{#if <condition>}` and in `{<expression>}`
|
||||||
|
|
||||||
|
By default, `fillOdtTemplate` limits access to global functions to only ECMAScript defaults via the use of [ses' Compartment](https://www.npmjs.com/package/ses#compartment), this prevents naïve data exfiltration
|
||||||
|
|
||||||
|
However, `fillOdtTemplate` is vulnerable to [prototype pollution](https://cheatsheetseries.owasp.org/cheatsheets/Prototype_Pollution_Prevention_Cheat_Sheet.html) inside template code. Two main ways to be secure are:
|
||||||
|
- control the set of possible templates
|
||||||
|
- call ses' `lockdown` which freezes Javascript intrinsics before calling `fillOdtTemplate` (this may lead to incompatibilities)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### Demo
|
### Demo
|
||||||
|
|
||||||
https://odfjs.github.io/odfjs/
|
https://odfjs.github.io/odfjs/
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user