JSF f:传递参数的事件安全吗?

时间:2012-07-16 20:04:56

标签: events jsf

我是JSF的新手,所以我对某些标签的了解并不是那么好。 我想知道在这种情况下传递参数有多安全:

<f:event listener="#{backBean.myMethod(**param**)}" type="preRenderView"/> 

因为,当我要通过这个“param”时,用户无法访问此信息(更改此值意味着安全漏洞,这不可能发生)。所以我要问这个是否可以使用这个事件来破解这个代码(传递另一个参数)?

谢谢!

1 个答案:

答案 0 :(得分:5)

如果最终用户无法控制param值,那么您就是安全的。就那么简单。您直接或间接(通过JSF或来自数据库!)从HttpServletRequest中提取的任何内容都属于最终用户的完整控制。

因此,如果你硬编码,

<f:event listener="#{backBean.myMethod('foo')}" type="preRenderView"/> 

然后你就安全了。

但是,如果您传递用户控制的请求参数,

<f:event listener="#{backBean.myMethod(param.foo)}" type="preRenderView"/> 

如果您在服务器端验证其值,那么您将是安全的。