<c:set var="zc_BtnFont_Style" value="${zc_BtnFont};" scope="request"/>
在这里,我可以访问操纵参数zc_BtnFont,因为它来自HttpServletRequest.getParameter()。但我不能动态评估这个表达式。
我在 SO 中看到过较早的帖子,其中解释了导致这种情况发生的问题。
这里,
1.我的web.xml指向http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd
2.EL忽略不在页面级别或通过web.xml完成。
我可以硬编码一个 EL {1+1} 来评估它为真,所以我认为它在这里不会被忽略。但是,如果我从请求 1+1 发送,则由于+被视为空间而变为 1 1。我尝试将 URL 编码为 1%2B1,然后它呈现为“1+1”而不是 2。
我了解 EL Injection 的安全风险,只是想知道如何实现这一点。