我是JSF的新手,所以我对某些标签的了解并不是那么好。 我想知道在这种情况下传递参数有多安全:
<f:event listener="#{backBean.myMethod(**param**)}" type="preRenderView"/>
因为,当我要通过这个“param”时,用户无法访问此信息(更改此值意味着安全漏洞,这不可能发生)。所以我要问这个是否可以使用这个事件来破解这个代码(传递另一个参数)?
谢谢!
答案 0 :(得分:5)
如果最终用户无法控制param
值,那么您就是安全的。就那么简单。您直接或间接(通过JSF或来自数据库!)从HttpServletRequest
中提取的任何内容都属于最终用户的完整控制。
因此,如果你硬编码,
<f:event listener="#{backBean.myMethod('foo')}" type="preRenderView"/>
然后你就安全了。
但是,如果您传递用户控制的请求参数,
<f:event listener="#{backBean.myMethod(param.foo)}" type="preRenderView"/>
如果您在服务器端验证其值,那么您将是安全的。