In PrestaShop, Twig templates may render HTML content coming from:
Rendering raw HTML without proper control introduces a high risk of XSS (Cross-Site Scripting).
Twig provides the |raw filter to bypass escaping, but uncontrolled usage is unsafe and error-prone.
To improve security while preserving backward compatibility, PrestaShop introduces explicit and documented usages for rendering raw HTML.
|raw — Default Twig filter{{ content|raw }}
|raw_purified|raw_purified — Recommended usage{{ content|raw_purified }}
This is the recommended filter for rendering HTML.
| Situation | Filter to use |
|---|---|
| Plain text | (no filter) |
| User-generated HTML | raw_purified |
| Module-provided HTML | raw_purified |
| Fully trusted internal HTML | raw |
When in doubt, always use
raw_purified.
raw Is DangerousThe raw filter:
<script>, event handlers (onload, onerror, etc.)raw_purified for any dynamic HTML contentraw{{ myVar|raw_purified }}
{{ trusted_html|raw }}