Open棟梁 wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。

目次

概要

★ 不正操作の制御・抑止に関する要件を明確にしておくこと。

”Open棟梁”の不正操作防止に使用できる機能

”Open棟梁”のASP.NET用P層フレームワークでは、
以下の不正操作防止に関する機能を使用できる。

不正操作防止機能

二重送信防止機能

画面遷移制御機能

ブラウザ・ウィンドウ別Session領域

不正操作の種類

新規ウィンドウの作成

同一の業務を、wwwブラウザの同一プロセス上の複数ウィンドウで操作するとSessionの競合が発生する可能性がある。

window.openでnameを付与する。

1枚のブラウザ ウィンドウでの表示のみ許可するのであれば、
GET要求をログイン時(もしくは任意の業務開始時)の1回のみ許可して
名称付きのブラウザ ウィンドウにメニュー画面を表示させると良い。
(ウィンドウ名を付与すると、2重に画面が開けなくなる。)

画面遷移制御機能ブラウザ・ウィンドウ別Session領域を使用する。

ことで、1枚のウィンドウの制限を実現できる。

URLの直打ち

アドレスバーを表示させない。

アドレスバーを非表示にさせれば、URLの直打ちを防止可能。

画面遷移制御機能を使用する。

ASP.NET用P層フレームワークの「画面遷移制御機能」を
使用することで、URLの直打ちの問題を回避することができる。

二重送信

などが発生する可能性がある。

Gecko系のWWWブラウザ(Firefoxなど)ではデフォルトで
二重送信が抑止されているものもあるが、IE6.0、7.0、8.0では抑止されていない。

二重送信防止機能を使用する。

ASP.NET用P層フレームワークの「二重送信防止機能」を
使用することで、クライアント側で二重送信を防止できる。

不正操作防止機能を使用する。

また、「不正操作防止機能」を使用することで(クライアント側で漏れた場合も)
サーバ側で「二重送信」を防止できる(サーバー側で例外を発生させる)。

戻る(バック サブミット)

二重送信と同様の現象を発生させる可能性がある。

戻る操作を無効にする。

キャッシュを無効化する。

これには、HTTPレスポンスのヘッダに「Cache-Control: no-cache」を設定しキャッシュ無効することで対応できるが、

など、制御し難いケースも発生し得る。

また、キャッシュ無効化だけの場合は、以下のケースで前画面に戻れてしまう。

また、こちらも同様に挙動がファジーである。

不正操作防止機能を使用する。

ASP.NET用P層フレームワークの「不正操作防止機能」を使用することで、
サーバ側で「バック サブミット」を防止できる(サーバー側で例外を発生させる)。

更新(リロード)

当該画面のレスポンスに対応する旧リクエストがサーバに再送されるため、二重送信と同様の現象を発生させる可能性がある。

ASP.NETの画面遷移直後の動作について:

このため、Response.Redirectの場合は、初期表示か否かで動作が異なる場合がある(画面初期表示のGet再送、ポストバックのPost再送)。

更新(リロード)操作を無効にする。

更新(リロード)操作を無効化させれば、更新(リロード)を防止可能。

不正操作防止機能を使用する。

ASP.NET用P層フレームワークの「不正操作防止機能」を使用することで、
サーバ側で「リロード」を防止できる(サーバー側で例外を発生させる)。

読み込みの停止後の操作

読み込みを停止して、再びサブミットすることにより、
二重送信と同様の現象を発生させる可能性がある。

読み込みの停止操作を無効にする。

読み込みの停止操作を無効化させれば、読み込みの停止を防止可能。

不正操作防止機能を使用する。

ASP.NET用P層フレームワークの「不正操作防止機能」を使用することで、
読み込みの停止後の操作を防止できる(サーバー側で例外を発生させる)。


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS