1

在 JSF 页面中,根据登录的用户权限填充选择。aziende4ReportList仅包含与登录用户相关的数据

 <h:selectOneMenu  id="comboAziende"  value="#{provaController.azienda}"  required="true" >
                    <f:selectItems value="#{provaController.aziende4ReportList}" />
                </h:selectOneMenu>

我认为随帖子发送到服务器的数据可能被篡改,所以我检查了发送列表之外的值,但出现验证错误。我可以确定 JSF 检查传入的数据只接受可以插入到之前生成的表单中的值吗?

4

1 回答 1

2

我可以确定 JSF 检查传入的数据只接受可以插入到之前生成的表单中的值吗?

这是正确的。使用未列出的下拉列表值篡改请求只会导致"Validation Error: Value is not valid"。不仅如此,JSF 在回发期间还会重新检查所有disabledrendered属性。因此,即使使用 JavaScript 来操作disabled属性,或者使用浏览器内置的 HTML DOM 编辑器来操作 HTML 元素,它仍然不会通过,因为根据 JSF 视图状态它是无效的。

顺便说一句,您的问题标题令人困惑,因此我暂时忽略该部分。就这一点而言,服务器端检查是绝对必要的,没有任何借口,这与使用的服务器端语言/框架无关。但是,JSF 已经做了很多,包括XSS 和 CSRF

于 2013-06-13T16:44:55.787 回答