JSTL, JSP Standard Tag Library, är ett taggbibliotek för att dynamiskt skapa HTML via JSP-sidor utan att skriva inline Java. En vanlig tagg är c:out som injicerar ett värde i sidan. Till exempel:
<c:out value="${address}"/>
Default-kodningen av utdata från c:out är XML vilket innebär att injicerat JavaScript i address skulle få skript-taggen kodad med < och >. Alltså säker mot cross-site scripting (XSS) ... eller?
<script>
...
<c:out value="${address}"/>
...
</script>
Om du använder c:out inuti ett skript-block så behövs inga skript-taggar i det injicerade skriptet. Alltså går det att göra XSS via JSTL. Läbbigt.
Inga kommentarer:
Skicka en kommentar