[[Open棟梁>https://github.com/OpenTouryoProject]] wiki -[[戻る>アプリケーション設計のポイント]] *目次 [#z9baef0b] #contents *概要 [#h829495d] wwwブラウザの標準の機能では、業務アプリケーションのニーズに合った不正操作の制御・抑止方法が用意されていない。このため、案件によっては、JavaScriptなどを使用してwwwブラウザを制御する場合もある。ただし、JavaScriptを使用した不正操作の制御・抑止処理をクロス ブラウザに完全に対応させることは難しいので、サーバ側で不正操作を検出し、以降の処理を中断し、システムに問題がおこらないように制御することもできる。 ★ 不正操作の制御・抑止に関する要件を明確にしておくこと。 *不正操作の種類 [#s313e5f6] **新規ウィンドウの作成 [#z4f55627] 同一の業務を、wwwブラウザの同一プロセス上の複数ウィンドウで操作するとSessionの競合が発生する可能性がある。 ※ ”Open棟梁” ASP.NET用P層フレームワークの「[[ブラウザ ウィンドウ別セッション]]領域」を使用することで、この問題を回避することができる 。 ※ 仮に、1枚のブラウザ ウィンドウでの表示のみ許可するのであれば、GET要求をログイン時(もしくは任意の業務開始時)の1回のみ許可して名称付きのブラウザ ウィンドウにメニュー画面を表示させる。 以降、全ての画面遷移を -POST + Transferで実装してGET要求を拒否する -もしくは、 ”Open棟梁”のASP.NET用P層フレームワークの「[[画面遷移制御機能]]」を使用することで、1枚のウィンドウの制限を実現できる。 ※ ”棟梁” ASP.NET用P層フレームワークの「不正操作防止機能」は、複数画面をサポートするため画面単位にリクエスト チケットを発行、画面単位の不正操作しか防止しない仕様であるため、この用途には使用できない。サブシステムや任意の業務などのSessionの競合が発生しない範囲毎に分けてリクエスト チケットを発行し、リクエストを検証する仕組みを別途実装すれば、柔軟な対応が可能である。