Mitä ovat Templaatti-Injektiot (SSTI)?
Mitä ovat templaatit?
Vanhanaikaiset web-sovellukset rakensivat (ja osittain rakentavat yhä) HTML-vastauksia tämän kaltaisesti.
1html = "<h1>Tervetuloa, " + nimi + "</h1>
2return htmlTä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.
1template = "<h1>Tervetuloa, {{nimi}}</h1>"
2return render_template(template, nimi=nimi)Hakkeroinnin oppiminen alkaa tästä
Sadat interaktiiviset kurssit, virtuaalilabrat ja CTF-haasteet selaimessasi. Aloita ilmainen kokeilu ilman korttitietoja.