在客户端操作禁用的属性;如果组件被禁用,JSF会正确测试吗?

时间:2013-08-16 13:04:07

标签: security jsf-2

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(....);
}

1 个答案:

答案 0 :(得分:1)

  

但我可以在客户端上输入方法操作disabled属性,然后发布被操纵的值。

是的,最终用户可以。


  

如果组件被禁用,服务器是否会进行测试并拒绝更改?

是的,JSF是基于组件树状态而不是基于提交的值来完成的。那部分是安全的。对于readonlyrendered attribtues,它也是这样做的。

另见:

相关问题