{"id":29642,"date":"2026-04-10T13:01:08","date_gmt":"2026-04-10T11:01:08","guid":{"rendered":"https:\/\/aivie.ch\/faq\/miten-voin-kaeyttaeae-htmlaeae-twig-muuttujissa\/"},"modified":"2026-04-10T13:01:23","modified_gmt":"2026-04-10T11:01:23","slug":"miten-voin-kaeyttaeae-htmlaeae-twig-muuttujissa","status":"publish","type":"faq","link":"https:\/\/aivie.ch\/fi\/faq\/miten-voin-kaeyttaeae-htmlaeae-twig-muuttujissa\/","title":{"rendered":"Miten voin k\u00e4ytt\u00e4\u00e4 HTML:\u00e4\u00e4 TWIG-muuttujissa?"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Voit k\u00e4ytt\u00e4\u00e4 HTML:\u00e4\u00e4 TWIG-muuttujissa, mutta sinun on nimenomaisesti sallittava se <code>safe_html<\/code> -suodattimella. N\u00e4in varmistetaan, ett\u00e4 tietoturva s\u00e4ilyy. <\/p>\n\n<!--more-->\n\n<h2 class=\"wp-block-heading\">Miksi HTML ei toimi suoraan TWIG:ss\u00e4?<\/h2>\n\n<p class=\"wp-block-paragraph\">Aivie on tiukentanut turvatoimiaan, ja HTML:n k\u00e4sittely\u00e4 TWIG-muuttujissa on rajoitettu. Syyn\u00e4 t\u00e4h\u00e4n on se, ett\u00e4 hallitsematon HTML voi aiheuttaa tietoturvariskin esimerkiksi upotetun JavaScriptin tai ulkoisen sis\u00e4ll\u00f6n kautta. <\/p>\n\n<p class=\"wp-block-paragraph\">Siksi uusi:<\/p>\n\n<ul class=\"wp-block-list\">\n<li>Toiminnot, kuten <code>|raw<\/code>, eiv\u00e4t ole en\u00e4\u00e4 sallittuja.<\/li>\n\n\n\n<li>Ei suoria HTML-tunnisteita tunnisteiden kautta<\/li>\n\n\n\n<li>Vain turvallinen, valvottu ulostulo sallittujen TWIG-toimintojen kautta.<\/li>\n<\/ul>\n\n<h2 class=\"wp-block-heading\">Ratkaisu: K\u00e4yt\u00e4 <code>safe_html<\/code> -suodatinta<\/h2>\n\n<p class=\"wp-block-paragraph\">Jos haluat jatkaa HTML:n k\u00e4ytt\u00f6\u00e4, uusi TWIG-suodatin on k\u00e4ytett\u00e4viss\u00e4: <code>safe_html<\/code>.<\/p>\n\n<p class=\"wp-block-paragraph\">T\u00e4m\u00e4 suodatin sallii m\u00e4\u00e4ritetyn luettelon turvallisista HTML-tunnisteista. N\u00e4in voit jatkaa j\u00e4sennellyn sis\u00e4ll\u00f6n, kuten taulukoiden, muotoilujen tai yksinkertaisten ulkoasujen k\u00e4ytt\u00f6\u00e4. <\/p>\n\n<p class=\"wp-block-paragraph\">Ei sallittuja ovat esim:<\/p>\n\n<ul class=\"wp-block-list\">\n<li>JavaScript<\/li>\n\n\n\n<li>iFrames<\/li>\n\n\n\n<li>Kuvat<\/li>\n\n\n\n<li>Ulkoinen sis\u00e4lt\u00f6, johon liittyy mahdollinen riski<\/li>\n<\/ul>\n\n<p class=\"wp-block-paragraph\">Sallitut HTML-elementit perustuvat viralliseen sanitizer-luetteloon (<a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/API\/HTML_Sanitizer_API\" target=\"_blank\" rel=\"noreferrer noopener\">MDN HTML Sanitizer API).<\/a><\/p>\n\n<h2 class=\"wp-block-heading\">Esimerkki<\/h2>\n\n<p class=\"wp-block-paragraph\">N\u00e4in voit tulostaa HTML:n oikein TWIG-muuttujaan:<\/p>\n\n<pre class=\"wp-block-code\"><code>&lt;td valign=\"top\" style=\"width: 100%\"&gt;\n  {{ item.name | safe_html }}\n&lt;\/td&gt;\n<\/code><\/pre>\n\n<p class=\"wp-block-paragraph\">T\u00e4rke\u00e4\u00e4: Suodatinta on sovellettava kaikkialla, miss\u00e4 odotetaan HTML:\u00e4\u00e4.<\/p>\n\n<h2 class=\"wp-block-heading\">Mit\u00e4 muuta on parannettu?<\/h2>\n\n<ul class=\"wp-block-list\">\n<li>TWIG:n suora tarkastelu ja muokkaus s\u00e4hk\u00f6postin, aloitussivun ja dynaamisen sis\u00e4ll\u00f6n editorissa.<\/li>\n\n\n\n<li><a href=\"https:\/\/aivie.ch\/fi\/?attachment_id=26512\" data-type=\"product\" data-id=\"25135\">Aivie Builderin koodieditori tukee nyt<\/a> TWIG:t\u00e4 natiivisti (linting, type ahaed, formatointi, snippets).<\/li>\n\n\n\n<li>TWIG-sis\u00e4ll\u00f6n parannettu esikatselu<\/li>\n<\/ul>\n\n<h2 class=\"wp-block-heading\">P\u00e4\u00e4telm\u00e4<\/h2>\n\n<p class=\"wp-block-paragraph\">HTML-tunnisteet ovat mahdollisia TWIG:ss\u00e4, mutta niit\u00e4 ohjataan vain <code>safe_html<\/code> -suodattimella. N\u00e4in voit yhdist\u00e4\u00e4 joustavuuden ja turvallisuuden ja v\u00e4ltt\u00e4\u00e4 turvattomasta koodista aiheutuvat riskit. <\/p>\n","protected":false},"excerpt":{"rendered":"<p>Voit k\u00e4ytt\u00e4\u00e4 HTML:\u00e4\u00e4 TWIG-muuttujissa, mutta sinun on nimenomaisesti sallittava se safe_html -suodattimella. N\u00e4in varmistetaan, ett\u00e4 tietoturva s\u00e4ilyy.<\/p>\n","protected":false},"featured_media":0,"template":"","categories":[],"tags":[1753,1756,1754,1755,1752],"FaqCategories":[1331,1318],"FaqTags":[1750,1751],"class_list":["post-29642","faq","type-faq","status-publish","hentry","tag-html","tag-koodi","tag-laskeutumissivun-rakentaja","tag-saehkoepostin-rakentaja","tag-twig","FaqCategories-laskeutumissivu","FaqCategories-saehkoepostit","FaqTags-koodi","FaqTags-twig"],"acf":[],"featured_image_urls_v2":{"full":"","thumbnail":"","medium":"","medium_large":"","large":"","post-thumbnail":"","aiv_480w":"","woocommerce_thumbnail":"","woocommerce_single":"","woocommerce_gallery_thumbnail":""},"post_excerpt_stackable_v2":"<p>Voit k\u00e4ytt\u00e4\u00e4 HTML:\u00e4\u00e4 TWIG-muuttujissa, mutta sinun on nimenomaisesti sallittava se safe_html -suodattimella. N\u00e4in varmistetaan, ett\u00e4 tietoturva s\u00e4ilyy. Miksi HTML ei toimi suoraan TWIG:ss\u00e4? Aivie on tiukentanut turvatoimiaan, ja HTML:n k\u00e4sittely\u00e4 TWIG-muuttujissa on rajoitettu. Syyn\u00e4 t\u00e4h\u00e4n on se, ett\u00e4 hallitsematon HTML voi aiheuttaa tietoturvariskin esimerkiksi upotetun JavaScriptin tai ulkoisen sis\u00e4ll\u00f6n kautta. Siksi uusi: Toiminnot, kuten |raw, eiv\u00e4t ole en\u00e4\u00e4 sallittuja. Ei suoria HTML-tunnisteita tunnisteiden kautta Vain turvallinen, valvottu ulostulo sallittujen TWIG-toimintojen kautta. Ratkaisu: K\u00e4yt\u00e4 safe_html -suodatinta Jos haluat jatkaa HTML:n k\u00e4ytt\u00f6\u00e4, uusi TWIG-suodatin on k\u00e4ytett\u00e4viss\u00e4: safe_html. T\u00e4m\u00e4 suodatin sallii m\u00e4\u00e4ritetyn luettelon turvallisista HTML-tunnisteista. N\u00e4in voit jatkaa j\u00e4sennellyn sis\u00e4ll\u00f6n, kuten taulukoiden, muotoilujen\u2026<\/p>\n","category_list_v2":"Yleinen","author_info_v2":{"name":"","url":""},"comments_num_v2":"0 comments","_links":{"self":[{"href":"https:\/\/aivie.ch\/fi\/wp-json\/wp\/v2\/faq\/29642","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/aivie.ch\/fi\/wp-json\/wp\/v2\/faq"}],"about":[{"href":"https:\/\/aivie.ch\/fi\/wp-json\/wp\/v2\/types\/faq"}],"version-history":[{"count":1,"href":"https:\/\/aivie.ch\/fi\/wp-json\/wp\/v2\/faq\/29642\/revisions"}],"predecessor-version":[{"id":29643,"href":"https:\/\/aivie.ch\/fi\/wp-json\/wp\/v2\/faq\/29642\/revisions\/29643"}],"wp:attachment":[{"href":"https:\/\/aivie.ch\/fi\/wp-json\/wp\/v2\/media?parent=29642"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/aivie.ch\/fi\/wp-json\/wp\/v2\/categories?post=29642"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/aivie.ch\/fi\/wp-json\/wp\/v2\/tags?post=29642"},{"taxonomy":"FaqCategories","embeddable":true,"href":"https:\/\/aivie.ch\/fi\/wp-json\/wp\/v2\/FaqCategories?post=29642"},{"taxonomy":"FaqTags","embeddable":true,"href":"https:\/\/aivie.ch\/fi\/wp-json\/wp\/v2\/FaqTags?post=29642"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}