1

Primefaces 3.5.10、Mojarra 2.1.21、Omnifaces 1.5

我正在考虑安全问题。

我使用 component.getAttributes() 方法设置组件属性。该方法返回一个带有属性的 HashMap。在此映射中设置 ("disabled", true)-pair 以禁用组件(例如 p:inputText-component)是否安全?我从 jsf 管道的 actionListener(第 5 或第 4 阶段)中使用它。所以它可能只对渲染阶段有影响。但是我可以从客户端的输入法中操作禁用的属性,然后发布操作值。如果组件被禁用并拒绝更改,服务器是否会进行测试?

最好的方法是什么?

panelGrid 中的所有组件都将被禁用:

xhtml:
<p:panelGrid>
  <my:component/>
  <p:input value=#{mybean.value} />
</p:panelGrid>

Bean:

for (UIComponent component : l) {
  component.getAttributes().put("disabled", true);

  recursion(....);
}
4

1 回答 1

1

但是我可以从客户端的输入法中操作禁用的属性,然后发布操作值。

是的,最终用户可以。


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

是的,JSF 是根据组件树状态而不是提交的值来做的。所以那部分是安全的。顺便说一句,它也为readonly和属性做到这rendered一点。

也可以看看:

于 2013-08-16T13:19:47.520 回答