1

JSF ページでは、ログインしたユーザー権限に基づいて select が入力されます。aziende4ReportListには、ログインしたユーザーに関連するデータのみが含まれます

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

投稿でサーバーに送信されたデータが改ざんされている可能性があると思ったので、リスト外の値を送信するチェックを行ったところ、検証エラーが発生しました。JSF が受信データをチェックして、以前に生成されたフォームに挿入できる値のみを受け入れていることを確認できますか?

4

1 に答える 1

2

JSF が受信データをチェックして、以前に生成されたフォームに挿入できる値のみを受け入れていることを確認できますか?

そのとおりです。リストされていないドロップダウン リストの値でリクエストを改ざんすると、「検証エラー: 値が無効です」という結果になるだけでした。それだけでなく、JSF はポストバック中にすべてdisabledの属性を再チェックします。renderedそのため、JavaScript を使用してdisabled属性を操作したり、ブラウザーの組み込み HTML DOM エディターを使用して HTML 要素を操作したりしたとしても、JSF ビュー ステートに従って有効ではないため、合格しません。

ところで、あなたの質問のタイトルは紛らわしいので、今のところその部分は無視します。要するに、サーバー側のチェックは絶対に必要です。言い訳ではありません。これは、使用するサーバー側の言語/フレームワークに関係ありません。ただし、JSF はXSS や CSRFなど、すでに多くのことを行っています。

于 2013-06-13T16:44:55.787 に答える