Какие свойства в компоненте поддержки JSF могут быть установлены пользователем?

У меня есть бэк (somebean) с тремя логическими свойствамиa, b, а такжеc, у каждого есть геттер и сеттер.

У меня есть форма, которая выглядит так:

<h:outputText rendered="#{somebean.b}">
    B is true
</h:outputText>
<h:form id="blah">
  <h:inputHidden value="#{somebean.a}" id="a"/>
  <h:commandLink id="zzzz" value="do it" action="#{somebean.doIt}"/>
</h:form>

Какое из трех свойствa, b, а такжеc может быть установлен клиентом? Я пытался добавитьb=true а такжеc=true на запрос POST, ноSomeBean.setB(boolean) а такжеSomeBean.setC(boolean) никогда не звонят. Так что, возможно, толькоa может быть установлен - логика в том, что если в JSF есть поле, которое его устанавливает, клиенту разрешено его устанавливать. Но, возможно, я ошибаюсь, и у него просто есть имя по умолчанию, о котором я не знаю, которое можно использовать для его установки ...

Должен ли я просто предположить, что клиент может установить какое-либо свойство моего компонента? Если нет, то какие я должен предположить, что клиент может установить (и, таким образом, о чем нужно беспокоиться во время проверки)?

И что произойдет, если я получу свою форму условно? например:

<h:outputText rendered="#{somebean.b}">
    <h:form id="blah">
      <h:inputHidden value="#{somebean.a}" id="a"/>
      <h:commandLink id="zzzz" value="do it" action="#{somebean.doIt}"/>
    </h:form>
</h:outputText>

В этом случае можноa все еще будет установлен, еслиb ложно?

Под «клиентом» я подразумеваю все, что отправляет HTTP-трафик на мой сайт. Это может быть, например, вредоносный код.

Ответы на вопрос(1)

Ваш ответ на вопрос