Aller au contenu
Vincle

Chargement…

    raw()

    Marque une chaîne HTML comme fiable. Utilisez cette échappatoire uniquement sur du contenu que vous contrôlez ou avez assaini.

    Signature#

    raw(value: string) retourne un RawString, utilisable comme contenu ou comme valeur d’attribut.

    raw(value: string): RawString

    Utilisation#

    Dans le contenu, raw() désactive l’échappement et insère la chaîne telle quelle. Les autres chaînes restent du texte échappé.

    import { raw } from "@vincle/core";
    <div>{raw(await renderMarkdown(post.body))}</div>;
    <div>{raw(DOMPurify.sanitize(userInput))}</div>;
    // ❌ XSS if userInput contains <script>alert(1)</script>
    <div>{raw(userInput)}</div>;
    // ✅ Vincle escapes by default
    <div>{userInput}</div>;

    Dans un attribut#

    Dans un attribut, les guillemets restent protégés pour conserver la structure HTML, mais raw() désactive notamment le filtrage des schémas d’URL. Ne l’utilisez pas sur des données non fiables.

    <a href={raw("javascript:go()")}>x</a>; // href="javascript:go()"
    <a title={raw('" onmouseover="alert(1)')}>x</a>; // title="&quot; onmouseover=&quot;…"

    dangerouslySetInnerHTML#

    dangerouslySetInnerHTML est une forme de compatibilité pour insérer du HTML de confiance. L’application est responsable de l’assainissement préalable.

    <div dangerouslySetInnerHTML={{ __html: "<b>bold</b>" }} />

    rawUrl() : une frontière de confiance plus étroite#

    rawUrl() permet un schéma d’URL que le filtre bloque normalement, tout en conservant l’échappement de la valeur. Il convient aux protocoles applicatifs explicitement approuvés.

    import { rawUrl } from "@vincle/core";
    <a href={rawUrl("phpstorm://open?file=src/app.ts")}>open in the IDE</a>;

    raw() et rawUrl()#

    Pour une URL approuvée, préférez rawUrl(). Pour du balisage HTML, raw() autorise une insertion bien plus large et nécessite un contrôle du contenu.

    Voir aussi#

    Consultez le modèle de sécurité et auditez les appels à raw() dans votre application.