HAKATEMIA
01Intro

Mitä ovat Templaatti-Injektiot (SSTI)?

Keskitaso20MIN

Mitä ovat templaatit?

Vanhanaikaiset web-sovellukset rakensivat (ja osittain rakentavat yhä) HTML-vastauksia tämän kaltaisesti.

PY
1html = "<h1>Tervetuloa, " + nimi + "</h1>
2return html

Tämän kaltainen HTML-rakennus on paitsi kankeaa, myös hirvittävän turvatonta. Tällaisiin sovelluksiin on yleensä aika helppo injektioida hyökkääjän omaa HTML/JavaScript-koodia, joka johtaa XSS-haavoittuvuuksiin.

Modernimpi lähestymistapa on käyttää templaatteja. Templaatit ovat erillisiä HTML-tiedostoja, jotka ovat osittain myös kooditiedostoja. Templaatille annetaan sitten haluttu data ja templaatti rakentaa HTML:n. Tässä koodissa ei ole haavoittuvuutta, koska templaatti osaa rakentaa HTML:ää turvallisesti niin, ettei ole väliä, mitä hyökkääjä on nimeksi syöttänyt, se ei muodostu vaarallisesti osaksi HTML-rakennetta.

PY
1template = "<h1>Tervetuloa, {{nimi}}</h1>"
2return render_template(template, nimi=nimi)
1 / 4
Hakatemia Pro

Hakkeroinnin oppiminen alkaa tästä

Sadat interaktiiviset kurssit, virtuaalilabrat ja CTF-haasteet selaimessasi. Aloita ilmainen kokeilu ilman korttitietoja.