为什么有人会使用$ {someVar}而不是<c:out value =“$ {someVar}”>

时间:2015-09-15 12:51:09

标签: html jsp escaping html-escape-characters

在JSP中使用Spring MVC:

经过一些阅读后,我得出结论,如果我使用

打印一些值

${someValue}

没有html转义完成。这是一个问题,因为我想要打印包含< >等的文字。

我将使用的解决方案是使用<c:out> - 标签替换所有此类事件,如

<c:out value="${someValue}" />

我的问题是:为什么我要首先使用简短形式?

我想象的唯一有效用法是,如果我想将 someValue 的内容呈现为html(我认为这是例外情况)。

编辑:我发现另一篇文章回答了我关于何时使用简短表格的问题,可以在这里找到

XSS prevention in JSP/Servlet web application

如链接中所述,重要的是包装正在重新显示的用户控制输入,因为这是攻击的潜在来源。

因此,如果某些值没有任何特殊字符,例如与<>类似,并且不是用户生成或控制的值,可以使用缩写形式${someValue}

0 个答案:

没有答案