如何在不使用jsp UseBean的情况下使用JSTL标记

时间:2013-05-17 13:08:09

标签: java jsp jstl xss el

我有一个问题,我应该停止XSS漏洞。这里的典型示例是vulnerable.jsp

 <h2><%= myObj.getElf() %></h2> 

myObj是我在jsp文件中创建的kObj class的对象:

<% kObj myObj = KSession.getPostInfo(session); %>

这里的问题是在这个框架中没有使用use bean。结果,核心JSTl的使用变得令人不安,并且它不起作用。例如,当我尝试做的时候:

<h2><c:out value={$( myObj.elf)} /></h2> 

它不起作用,并告诉我对象elf.运算符没有任何关系。

kObj类也不是严格意义上的POJO。有人可以建议我能在这做什么吗?

1 个答案:

答案 0 :(得分:1)

代码中演示的JSTL标记使用EL。 EL中使用的对象应该位于已知范围之一:request,session等。因此,在EL表达式中,您应该尝试使用实例存储在会话中的键而不是myObj。

您似乎从HTTP会话中获取对象,不确定KSession是什么,但我认为它在内部从会话映射中获取它。让我们假设对象存储在会话映射中的实际键是“myObjKey”。所以不要使用“$ {myobj.elf}”而是使用“$ {myObjKey.elf}”