java - 如何在不使用jsp UseBean的情况下使用JSTL标签

标签 java jsp jstl xss el

我有一个问题,我应该阻止 XSS 漏洞。一个典型的例子是 vulnerable.jsp :

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

myObjkObj 类 的一个对象,它是我在 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/

相关文章:

java - 如何从 Struts 2 中的 select 标签映射多个值?

java - 显示 <c :forEach> loop 中的值

java - 从填充的 HashMap 中检索到的 Arraylist 不断返回一个空的 arraylist

java - 标记未知 s :property

java - 位置每 35 秒更新一次,并在当前位置上画一个圆圈

Mysql Workbench 和来自 jsp 的抛光语言输入

java - 如何通过 URL 路径解析、获取文件名,然后使用 JSTL 和 Java scriptlet 替换文件扩展名

java - 如何从 HTML 表格中选定的行获取单元格值?

java - 如何在集合操作中使用arrayUnion

java - 将 commons DBCP 从 1.2 升级到 1.4,我应该害怕吗?