Webアプリケーションの不正操作
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
「[[Open棟梁 wiki>https://opentouryo.osscons.jp]]」は、「...
-戻る
--[[機能一覧 - フレームワーク]]
--[[アプリケーション設計のポイント]]
*目次 [#z9baef0b]
#contents
*概要 [#h829495d]
-wwwブラウザの標準の機能では、業務アプリケーションのニー...
-このため、案件によっては、JavaScriptなどを使用してwwwブ...
-ただし、JavaScriptを使用した不正操作の制御・抑止処理をク...
サーバ側で不正操作を検出し、以降の処理を中断し、システム...
★ 不正操作の制御・抑止に関する要件を明確にしておくこと。
*”Open棟梁”の不正操作防止に使用できる機能 [#c7267f68]
”Open棟梁”のASP.NET用P層フレームワークでは、~
以下の不正操作防止に関する機能を使用できる。
**[[不正操作防止機能]] [#qbeda740]
**[[二重送信防止機能]] [#p78099fc]
**[[画面遷移制御機能]] [#ka245eee]
**[[ブラウザ・ウィンドウ別Session領域]] [#mbe940de]
*不正操作の種類 [#s313e5f6]
**新規ウィンドウの作成 [#z4f55627]
同一の業務を、wwwブラウザの同一プロセス上の複数ウィンドウ...
***window.openでnameを付与する。 [#g5414679]
1枚のブラウザ ウィンドウでの表示のみ許可するのであれば、~
GET要求をログイン時(もしくは任意の業務開始時)の1回のみ...
名称付きのブラウザ ウィンドウにメニュー画面を表示させると...
(ウィンドウ名を付与すると、2重に画面が開けなくなる。)
-window.open()でnameを指定する場合の注意事項 - masaakibの...
http://d.hatena.ne.jp/masaakib/20091027/1256652411
-window.open - Web API インターフェイス | MDN~
https://developer.mozilla.org/ja/docs/Web/API/window.open
***[[画面遷移制御機能]]と[[ブラウザ・ウィンドウ別Session...
-ASP.NET用P層フレームワークの[[ブラウザ・ウィンドウ別Sess...
使用することで、Sessionの競合の問題を回避することができる...
-また、以降、全ての画面遷移を
--POST + Transferで実装してGET要求を拒否する
--もしくは、ASP.NET用P層フレームワークの「[[画面遷移制御...
>ことで、1枚のウィンドウの制限を実現できる。
**URLの直打ち [#sc2f76c0]
-URLの直打ちによる画面表示が可能なように造られていない画...
-例えば、画面遷移時の引渡し情報(Form情報、HTTPContext情...
***アドレスバーを表示させない。 [#r8d5a154]
アドレスバーを非表示にさせれば、URLの直打ちを防止可能。
-参考
--window.open - Web API インターフェイス | MDN > ツールバ...
https://developer.mozilla.org/ja/docs/Web/API/window.open
---menubar
---toolbar
---location ★
---personalbar
***[[画面遷移制御機能]]を使用する。 [#hc70ae03]
ASP.NET用P層フレームワークの「[[画面遷移制御機能]]」を~
使用することで、URLの直打ちの問題を回避することができる。
**二重送信 [#nd813739]
-レコードの追加時:キー重複エラー、二重追加
-レコードの更新時:二重更新(タイムスタンプ アンマッチ)
-その他、Sessionの不整合として、更新エラーやNull Referenc...
などが発生する可能性がある。
Gecko系のWWWブラウザ(Firefoxなど)ではデフォルトで~
二重送信が抑止されているものもあるが、IE6.0、7.0、8.0では...
***[[二重送信防止機能]]を使用する。 [#u065d36f]
ASP.NET用P層フレームワークの「[[二重送信防止機能]]」を~
使用することで、クライアント側で二重送信を防止できる。~
***[[不正操作防止機能]]を使用する。 [#l8eefc2d]
また、「[[不正操作防止機能]]」を使用することで(クライア...
サーバ側で「二重送信」を防止できる(サーバー側で例外を発...
**戻る(バック サブミット) [#q83aabfd]
二重送信と同様の現象を発生させる可能性がある。
***戻る操作を無効にする。 [#i6dcdfe3]
-戻る操作を無効化させれば、戻る(バック サブミット)を防...
--戻るボタンの非表示
--戻るショートカットの無効化
-参考
--window.open - Web API インターフェイス | MDN > ツールバ...
https://developer.mozilla.org/ja/docs/Web/API/window.open
---menubar ★
---toolbar ★
---location
---personalbar
--キーイベント抑止、ショートカットの処理(IE限定版)~
https://github.com/OpenTouryoProject/OpenTouryo/blob/deve...
***キャッシュを無効化する。 [#ed3c5123]
これには、HTTPレスポンスのヘッダに「Cache-Control: no-cac...
-プロキシ サーバが存在する場合がある
-IEの「インターネット一時ファイルの設定」の「自動的に確認...
など、制御し難いケースも発生し得る。
また、キャッシュ無効化だけの場合は、以下のケースで前画面...
-バックボタン押下時に[[前画面を取得したHTTPリクエストを再...
前画面を取得するという仕様となっているので前画面に戻れて...
-これを抑止するために「ページの有効期限切れ」を表示させる...
しかし、これは前画面の取得がPOSTメソッドで、HTTPレスポン...
また、こちらも同様に挙動がファジーである。
***[[不正操作防止機能]]を使用する。 [#k20c9b15]
ASP.NET用P層フレームワークの「[[不正操作防止機能]]」を使...
サーバ側で「バック サブミット」を防止できる(サーバー側で...
**更新(リロード) [#eb2f2050]
-当該画面のレスポンスに対応する旧リクエストがサーバに再送...
-ASP.NETの画面遷移直後の動作について:
--PostBack ---> Server.Transferの画面遷移直後の更新(リロ...
--PostBack ---> Response.Redirectの画面遷移直後の更新(リ...
-このため、Response.Redirectの場合は、初期表示か否かで、...
HTTPメソッドが異なる場合がある(画面初期表示のGet再送、ポ...
-この特性を利用して、二重送信防止に、PRG(Post-Redirect-Ge...
***更新(リロード)操作を無効にする。 [#k0eeab8e]
更新(リロード)操作を無効化させれば、更新(リロード)を...
-更新(リロード)ボタンの非表示
-更新(リロード)ショートカット、F5キーの無効化
***[[不正操作防止機能]]を使用する。 [#mb930322]
ASP.NET用P層フレームワークの「[[不正操作防止機能]]」を使...
サーバ側で「リロード」を防止できる(サーバー側で例外を発...
**読み込みの停止後の操作 [#f3141c33]
読み込みを停止して、再びサブミットすることにより、~
二重送信と同様の現象を発生させる可能性がある。
***読み込みの停止操作を無効にする。 [#a814ade1]
読み込みの停止操作を無効化させれば、読み込みの停止を防止...
-更新(リロード)ボタンの非表示
-更新(リロード)ショートカットの無効化
***[[不正操作防止機能]]を使用する。 [#g8c6c5f1]
ASP.NET用P層フレームワークの「[[不正操作防止機能]]」を使...
読み込みの停止後の操作を防止できる(サーバー側で例外を発...
終了行:
「[[Open棟梁 wiki>https://opentouryo.osscons.jp]]」は、「...
-戻る
--[[機能一覧 - フレームワーク]]
--[[アプリケーション設計のポイント]]
*目次 [#z9baef0b]
#contents
*概要 [#h829495d]
-wwwブラウザの標準の機能では、業務アプリケーションのニー...
-このため、案件によっては、JavaScriptなどを使用してwwwブ...
-ただし、JavaScriptを使用した不正操作の制御・抑止処理をク...
サーバ側で不正操作を検出し、以降の処理を中断し、システム...
★ 不正操作の制御・抑止に関する要件を明確にしておくこと。
*”Open棟梁”の不正操作防止に使用できる機能 [#c7267f68]
”Open棟梁”のASP.NET用P層フレームワークでは、~
以下の不正操作防止に関する機能を使用できる。
**[[不正操作防止機能]] [#qbeda740]
**[[二重送信防止機能]] [#p78099fc]
**[[画面遷移制御機能]] [#ka245eee]
**[[ブラウザ・ウィンドウ別Session領域]] [#mbe940de]
*不正操作の種類 [#s313e5f6]
**新規ウィンドウの作成 [#z4f55627]
同一の業務を、wwwブラウザの同一プロセス上の複数ウィンドウ...
***window.openでnameを付与する。 [#g5414679]
1枚のブラウザ ウィンドウでの表示のみ許可するのであれば、~
GET要求をログイン時(もしくは任意の業務開始時)の1回のみ...
名称付きのブラウザ ウィンドウにメニュー画面を表示させると...
(ウィンドウ名を付与すると、2重に画面が開けなくなる。)
-window.open()でnameを指定する場合の注意事項 - masaakibの...
http://d.hatena.ne.jp/masaakib/20091027/1256652411
-window.open - Web API インターフェイス | MDN~
https://developer.mozilla.org/ja/docs/Web/API/window.open
***[[画面遷移制御機能]]と[[ブラウザ・ウィンドウ別Session...
-ASP.NET用P層フレームワークの[[ブラウザ・ウィンドウ別Sess...
使用することで、Sessionの競合の問題を回避することができる...
-また、以降、全ての画面遷移を
--POST + Transferで実装してGET要求を拒否する
--もしくは、ASP.NET用P層フレームワークの「[[画面遷移制御...
>ことで、1枚のウィンドウの制限を実現できる。
**URLの直打ち [#sc2f76c0]
-URLの直打ちによる画面表示が可能なように造られていない画...
-例えば、画面遷移時の引渡し情報(Form情報、HTTPContext情...
***アドレスバーを表示させない。 [#r8d5a154]
アドレスバーを非表示にさせれば、URLの直打ちを防止可能。
-参考
--window.open - Web API インターフェイス | MDN > ツールバ...
https://developer.mozilla.org/ja/docs/Web/API/window.open
---menubar
---toolbar
---location ★
---personalbar
***[[画面遷移制御機能]]を使用する。 [#hc70ae03]
ASP.NET用P層フレームワークの「[[画面遷移制御機能]]」を~
使用することで、URLの直打ちの問題を回避することができる。
**二重送信 [#nd813739]
-レコードの追加時:キー重複エラー、二重追加
-レコードの更新時:二重更新(タイムスタンプ アンマッチ)
-その他、Sessionの不整合として、更新エラーやNull Referenc...
などが発生する可能性がある。
Gecko系のWWWブラウザ(Firefoxなど)ではデフォルトで~
二重送信が抑止されているものもあるが、IE6.0、7.0、8.0では...
***[[二重送信防止機能]]を使用する。 [#u065d36f]
ASP.NET用P層フレームワークの「[[二重送信防止機能]]」を~
使用することで、クライアント側で二重送信を防止できる。~
***[[不正操作防止機能]]を使用する。 [#l8eefc2d]
また、「[[不正操作防止機能]]」を使用することで(クライア...
サーバ側で「二重送信」を防止できる(サーバー側で例外を発...
**戻る(バック サブミット) [#q83aabfd]
二重送信と同様の現象を発生させる可能性がある。
***戻る操作を無効にする。 [#i6dcdfe3]
-戻る操作を無効化させれば、戻る(バック サブミット)を防...
--戻るボタンの非表示
--戻るショートカットの無効化
-参考
--window.open - Web API インターフェイス | MDN > ツールバ...
https://developer.mozilla.org/ja/docs/Web/API/window.open
---menubar ★
---toolbar ★
---location
---personalbar
--キーイベント抑止、ショートカットの処理(IE限定版)~
https://github.com/OpenTouryoProject/OpenTouryo/blob/deve...
***キャッシュを無効化する。 [#ed3c5123]
これには、HTTPレスポンスのヘッダに「Cache-Control: no-cac...
-プロキシ サーバが存在する場合がある
-IEの「インターネット一時ファイルの設定」の「自動的に確認...
など、制御し難いケースも発生し得る。
また、キャッシュ無効化だけの場合は、以下のケースで前画面...
-バックボタン押下時に[[前画面を取得したHTTPリクエストを再...
前画面を取得するという仕様となっているので前画面に戻れて...
-これを抑止するために「ページの有効期限切れ」を表示させる...
しかし、これは前画面の取得がPOSTメソッドで、HTTPレスポン...
また、こちらも同様に挙動がファジーである。
***[[不正操作防止機能]]を使用する。 [#k20c9b15]
ASP.NET用P層フレームワークの「[[不正操作防止機能]]」を使...
サーバ側で「バック サブミット」を防止できる(サーバー側で...
**更新(リロード) [#eb2f2050]
-当該画面のレスポンスに対応する旧リクエストがサーバに再送...
-ASP.NETの画面遷移直後の動作について:
--PostBack ---> Server.Transferの画面遷移直後の更新(リロ...
--PostBack ---> Response.Redirectの画面遷移直後の更新(リ...
-このため、Response.Redirectの場合は、初期表示か否かで、...
HTTPメソッドが異なる場合がある(画面初期表示のGet再送、ポ...
-この特性を利用して、二重送信防止に、PRG(Post-Redirect-Ge...
***更新(リロード)操作を無効にする。 [#k0eeab8e]
更新(リロード)操作を無効化させれば、更新(リロード)を...
-更新(リロード)ボタンの非表示
-更新(リロード)ショートカット、F5キーの無効化
***[[不正操作防止機能]]を使用する。 [#mb930322]
ASP.NET用P層フレームワークの「[[不正操作防止機能]]」を使...
サーバ側で「リロード」を防止できる(サーバー側で例外を発...
**読み込みの停止後の操作 [#f3141c33]
読み込みを停止して、再びサブミットすることにより、~
二重送信と同様の現象を発生させる可能性がある。
***読み込みの停止操作を無効にする。 [#a814ade1]
読み込みの停止操作を無効化させれば、読み込みの停止を防止...
-更新(リロード)ボタンの非表示
-更新(リロード)ショートカットの無効化
***[[不正操作防止機能]]を使用する。 [#g8c6c5f1]
ASP.NET用P層フレームワークの「[[不正操作防止機能]]」を使...
読み込みの停止後の操作を防止できる(サーバー側で例外を発...
ページ名: