我有一个问题,我应该阻止 XSS 漏洞。一个典型的例子是 vulnerable.jsp
:
<h2><%= myObj.getElf() %></h2>
myObj
是 kObj 类
的一个对象,它是我在 jsp 文件中创建的:
<% kObj myObj = KSession.getPostInfo(session); %>
这里的问题是这个框架中没有使用 use bean。结果,核心 JSTl 的使用变得麻烦并且不起作用。例如,当我尝试这样做时:
<h2><c:out value={$( myObj.elf)} /></h2>
它不起作用,并告诉我使用 .
运算符的对象 elf
没有值。
kObj
类严格来说也不是 POJO。有人可以建议我在这里可以做什么吗?
最佳答案
代码中演示的 JSTL 标记使用 EL。 EL 中使用的对象应该位于已知范围之一:请求、 session 等。因此,在 EL 表达式中,您应该尝试使用实例实际存储在 session 中的 key ,而不是 myObj。
您似乎从 HTTP session 中获取对象,不确定 KSession 是什么,但我假设它在内部从 session 映射中获取它。让我们假设在 session 映射中存储对象的实际键是“myObjKey”。因此,不要使用“${myobj.elf}”,而是使用“${myObjKey.elf}”
关于java - 如何在不使用jsp UseBean的情况下使用JSTL标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16609902/