JSF 2形成篡改

时间:2014-03-05 17:15:46

标签: security jsf-2 tampering

我刚刚来自strust2的jsf只是两天了!

当struts自动将请求参数绑定到操作时,有一种机制可以帮助您在使用 ModelDriven approch时特别控制它。在那里你可以实现 acceptableParameterName 方法来控制struts自动设置的内容以及不应该的内容。

任何方式,现在我们都在JSF,我想知道在这里要做什么!

我尝试下面的简单页面

<h:form>
          <h:inputText id="name" value="#{helloBean.name1}"></h:inputText>
            <h:commandButton value="Welcome Me">
               <f:ajax execute="name" render="output" />
            </h:commandButton>

           <h2><h:outputText id="output" value="#{helloBean.name2}" /></h2>
        </h:form>

豆子是:

@ManagedBean
@SessionScoped
public class HelloBean2 implements Serializable {

    private static final long serialVersionUID = 1L;

    private String name1;
    private String name2;

    public String getName1() {
        return name1;
    }

    public void setName1(String name1) {
        this.name1 = name1;
    }

    public String getName2() {
        return name2;
    }

    public void setName2(String name2) {
        this.name2 = name2;
    }
}

我试图篡改经过处理的html:

<input id="j_idt41:name" name="j_idt41:name" value="" type="text">

<input id="j_idt41:name" name="j_idt41:name2" value="" type="text">

但没有运气,而且名称2未由JSF设定

我的问题是:

这是否意味着JSF知道我试图从用户获取哪些参数并自动阻止其他参数?例如,如果我的 inputText 名称为 name1 ,则JSF会设置 name1

如果没有,我应该如何避免JSF自动绑定不想要的参数?

请考虑我的真正问题是我想使用一个包含大量参数的bean,并且每个视图中只应设置其中一些(某种向导)

我看到In JSF, What is the best way to prevent Form tampering?,但我认为我的问题不同了!

0 个答案:

没有答案