Какие свойства в компоненте поддержки 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-трафик на мой сайт. Это может быть, например, вредоносный код.