I am trying to create a tool within my Spring MVC webapp where the JSP page takes in text from a user from a textbox, then displays the user text below the textbox with every non-UTF8 decode-able character highlighted in yellow (by taking in the user text as a string, and wrapping every non-UTF8 character with <span style='background:yellow'>(character)</span> and saving the result as form.userDataHighlighted), then display it in the webpage as such:
<TABLE...>
........
<TR>
<TD valign="top">
<div>${form.userDataHighlighted}</div>
</TD>
</TR>
</TABLE>
The problem is that the user may enter html content with CSS styling as such:
<html>
<head>
<meta http-equiv=Content-Type content="text/plain; charset=utf-8">
<title></title>
<style>
(some user defined styling)
......
</style>
</head>
<body>
....
</body>
</html>
and this can affect the styling of the main webpage (for example, change the background color of the main webpage).
Is there a way I can "sandbox" the user text within the JSP so that it cannot affect the main JSP styling (such as display it in some kind of frame)? I have tried something like:
<table border="1">
<tr>
<td style="width:500px;height:400px">
<iframe srcdoc=${form.userDataHighlighted} frameborder="0" style="width:100%;height:100%"></iframe>
</td>
</tr>
</table>
and also:
<jsp:include.......>
but in both cases, the background color of the main page is still affected. Is there a way I can display the user's text with the non-UTF8 characters highlighted without allowing the user content to affect the styling of the main page?
Our community of experts have been thoroughly vetted for their expertise and industry experience.
The Distinguished Expert awards are presented to the top veteran and rookie experts to earn the most points in the top 50 topics.