「[[Open棟梁 wiki>https://opentouryo.osscons.jp]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。 -[[戻る>機能一覧]] * 目次 [#h170136f] #contents *概要 [#t1b1d069] [[不正操作防止機能]]は、 -クライアント-サーバのRequest Ticketを比較することで不正操作を検出する。 -不正操作の例 --二重送信 --リロード --バック・サブミット --キャッシュの参照 *詳細 [#d86ef3e1] -HiddenとSessionに格納したRequest Ticketを~ サーバサイドで突き合わせすることで不正操作を検出する仕組みです。 -Open棟梁は[[ブラウザ・ウィンドウ別Session領域]]機能を持っているので、~ 本機能は複数ブラウザ・ウィンドウの場合にも対応しています。 -Request Ticketは、LRUで削除される。~ 世代数は、FxRequestTicketGuidMaxQueueLengthに設定できる。 #ref(IllegalOperationPreventingFunction.png,left,nowrap,不正操作防止機能) *例外発生の抑止 [#h0290623] -[[Webアプリケーションの不正操作]]が行われた時に、[[不正操作防止機能]]が例外をスローします。 -以下の対策を施すことで、[[不正操作防止機能]]の例外を抑止できます。 **ユーザ操作を制限する。 [#g21ec159] 「[[Webアプリケーションの不正操作]]」に書かれている[[不正操作防止機能]]以外の対策を施す。 **例外発生後の扱いを変える [#kbcad5d7] -例外の発生箇所~ https://github.com/OpenTouryoProject/OpenTouryo/blob/develop/root/programs/C%23/Frameworks/Infrastructure/Framework/Presentation/BaseController.cs#L788 >↓ -例外の補足箇所~ https://github.com/OpenTouryoProject/OpenTouryo/blob/develop/root/programs/C%23/Frameworks/Infrastructure/Framework/Presentation/BaseController.cs#L1665 >↓ ***ログ出力のカスタマイズ [#kdf19659] https://github.com/OpenTouryoProject/OpenTouryo/blob/develop/root/programs/C%23/Frameworks/Infrastructure/Business/Presentation/MyBaseController.cs#L729 >ここでログ出力処理をカスタマイズする。 ***セッション解放のカスタマイズ [#z7a83605] https://github.com/OpenTouryoProject/OpenTouryo/blob/develop/root/programs/C%23/Frameworks/Infrastructure/Business/Presentation/MyBaseController.cs#L790 >現行、不正操作防止機能の例外はセッションを解放しない作りになっている(業務続行可能)。 *関連 [#i057267b] -[[不正操作防止機能の誤検知]] -[[FxRequestTicketGuidMaxQueueLength]] -[[this.CanCheckIllegalOperationプロパティ]]