Primefaces 3.5.10,Mojarra 2.1.21,Omnifaces 1.5
我在考虑安全问题。
我使用component.getAttributes()方法设置component属性。此方法返回带有属性的HashMap。在此映射中设置(“disabled”,true) - pair以禁用组件(例如p:inputText-component)是否安全?我在jsf管道的actionListener(阶段5或4)中使用它。所以它可能仅对渲染阶段有影响。但我可以在客户端上从输入法操作disabled属性,然后发布被操纵的值。服务器是否在禁用组件时进行测试并拒绝更改?
最好的方法是什么?
panelGrid中的所有组件都将被禁用:
xhtml:
<p:panelGrid>
<my:component/>
<p:input value=#{mybean.value} />
</p:panelGrid>
Bean:
for (UIComponent component : l) {
component.getAttributes().put("disabled", true);
recursion(....);
}
答案 0 :(得分:1)
但我可以在客户端上输入方法操作disabled属性,然后发布被操纵的值。
是的,最终用户可以。
如果组件被禁用,服务器是否会进行测试并拒绝更改?
是的,JSF是基于组件树状态而不是基于提交的值来完成的。那部分是安全的。对于readonly
和rendered
attribtues,它也是这样做的。