JP4878193B2 - 判定プログラム、判定方法及び判定装置 - Google Patents

判定プログラム、判定方法及び判定装置 Download PDF

Info

Publication number
JP4878193B2
JP4878193B2 JP2006092513A JP2006092513A JP4878193B2 JP 4878193 B2 JP4878193 B2 JP 4878193B2 JP 2006092513 A JP2006092513 A JP 2006092513A JP 2006092513 A JP2006092513 A JP 2006092513A JP 4878193 B2 JP4878193 B2 JP 4878193B2
Authority
JP
Japan
Prior art keywords
information
command
screen
processing
name
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2006092513A
Other languages
English (en)
Other versions
JP2007265291A (ja
Inventor
登 車井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2006092513A priority Critical patent/JP4878193B2/ja
Priority to US11/494,908 priority patent/US20070233818A1/en
Publication of JP2007265291A publication Critical patent/JP2007265291A/ja
Application granted granted Critical
Publication of JP4878193B2 publication Critical patent/JP4878193B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • G06F16/972Access to data in other repository systems, e.g. legacy data or dynamic Web page generation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Description

本発明は、サーバ機のアプリケーションのフレームワークに関し、特に、クライアント機に提供される入出力画面データを生成するサーバ機での、コマンドの合致判定を行う判定プログラム、判定方法及び判定装置に関する。
クライアント機から通信ネットワークを介してアクセスされるアプリケーションサーバ機の処理に、入出力画面生成処理がある。この入出力画面生成処理は、例えばクライアント機からサーバ機内の所定のサーバ・アプリケーションにアクセスがあった場合などにおける各画面の生成処理であり、画面遷移に大きく寄与する。
この入出力画面生成処理では、一般的に、クライアント機に表示されている画面で発行されたリクエスト情報からパラメータを抽出して、そのパラメータで指定された処理を例えば所定の業務処理部へ振り分けるなどして実行し、その処理結果を基にクライアント機へ送信する次の画面(応答画面)を生成する。
サーバ機は、上記入出力画面生成処理により、クライアント機から送られてくるリクエスト情報に対応した画面をクライアント機に提供している。
また、上記画面生成処理に関連して、この他に、クライアント機で複数のブラウザが起動された場合などの情報管理方法を開示した特許文献がある。この文献には、リクエストが発行された画面の状態に対応するアプリケーションの処理情報をサーバ機で再現する機能が開示されている(特許文献1参照)。
特開2004−259016号公報
上述したように、入出力画面生成処理ではクライアント機で発行されたリクエスト情報に与えられているパラメータに基づいて応答画面を生成する処理が行われる。
このため、悪意のあるユーザが意図的にそのパラメータを操作して、そのリクエスト情報をサーバ機へ送信した場合には、想定外の手順となるため問題である。
図12は、リクエスト情報の中に改竄されたパラメータが含まれている場合に入出力画面生成処理で生成する画面の遷移を示した図である。
同図は、パラメータに応じた業務処理をビジネスクラスに振り分けて処理させる構成のものをモデルとして示したものである。また、生成画面は、各生成画面内に構成されているボタンがその度ごとに押下されることにより、画面1から画面4に順に遷移するものとする。
本例では、本来は画面1のボタンが押されてそのリクエスト情報がサーバ機に送信されるところを、あたかも画面3のボタンが押されたかのように改竄されたリクエスト情報がサーバ機に送信された場合の画面遷移を一例として示している。
この例の場合、本来はボタン1のコマンド情報に対応するビジネスクラスで処理が実行され、その結果として画面2が生成されるはずであるが、実際にはボタン3のコマンド情報を受け取ったため、ボタン3のコマンド情報に対応する実行すべきでないビジネスクラスで処理が実行されることになり、その結果として他の画面(本例では画面4)が生成される。
つまり、本来の画面遷移(画面1の次は画面2に遷移)とは異なる画面遷移(画面1から画面4)が当然のことのように実行されてしまうことになる。
本来、サーバ・アプリケーションなどはビジネスクラスが順番に実行されることを想定して設計されるため、このような飛び越し処理が行われると問題が発生することがある。例えば、発注システムでは、在庫数の確認処理を飛ばして発注処理が行われてしまうなどの恐れがあり、この場合、在庫が残っているにもかかわらず補充のための発注がおこなわれてしまうなどの問題が発生してしまう。
そこで本発明では、予め決まっている所定の順番で画面遷移を行わせることが可能なサーバ機で実行する判定プログラム、判定方法及び判定装置を提供することを目的とする。
本発明は上記課題を解決するために以下のように構成する。
本発明のプログラムの態様の一つは、コンピュータに、処理要求コマンドと対応付けられた表示要素を含む画面についての画面情報を、他のコンピュータに送信する場合に、前記画面情報に含まれる前記処理要求コマンドを記憶手段に記憶し、前記他のコンピュータから、処理要求コマンドを含むデータを受信した場合に、受信した前記データに含まれる処理要求コマンドが、前記記憶手段に記憶されている前記処理要求コマンドと合致するか否かの判定を行なう、ことを実行させることを特徴とする判定プログラムである。
なお、前記判定の結果、合致しない場合に、前記データに含まれる処理要求コマンドの実行を抑止することが好ましい。
また、前記判定の結果、合致する場合に、前記記憶手段に記憶された前記処理要求コマンドを削除することが好ましい。
発明の方法の態様の一つは、コンピュータに、処理要求コマンドと対応付けられた表示要素を含む画面についての画面情報を、他のコンピュータに送信する場合に、前記画面情報に含まれる前記処理要求コマンドを記憶手段に記憶し、前記他のコンピュータから、処理要求コマンドを含むデータを受信した場合に、受信した前記データに含まれる処理要求コマンドが、前記記憶手段に記憶されている前記処理要求コマンドと合致するか否かの判定を行なう、ことを実行させることを特徴とする判定方法である。
本発明の装置の態様の一つは、処理要求コマンドと対応付けられた表示要素を含む画面についての画面情報を、他のコンピュータに送信する場合に、前記処理要求コマンドを前記画面情報から抽出する抽出手段と、前記抽出手段が抽出した前記処理要求コマンドを記憶する記憶手段と、前記他のコンピュータから、処理要求コマンドを含むデータを受信した場合に、受信した前記データに含まれる処理要求コマンドが、前記記憶手段に記憶されている前記処理要求コマンドと合致するか否かの判定を行なう判定手段と、を含むことを特徴とする判定装置である。
本発明では、所定の順番で画面を遷移させることが可能になる。また、画面順に従わない不正に改竄されたリクエスト情報がクライアントから送信された場合であっても、予定にない画面遷移を抑止できるようになる。
以下、本発明を実施するための最良の形態について、図面を参照しながら詳細に説明する。
先ず、本発明のプログラムを適用する対象について概要説明し、その次に、本発明のプログラムについて詳しく説明する。
本発明のプログラムは、クライアント機とサーバ機とが通信ネットワークにより接続された通信システムにおいてサーバ機側に適用されるものである。特に、アプリケーション(サーバ・アプリケーション)を実装し、そのサーバ・アプリケーションが有する特有の機能をクライアント機からのリクエスト情報に応じて自機内で実行させる環境をもつサーバ機(例えばアプリケーションサーバ機など)で実行される。
本発明のプログラムは、そのサーバ・アプリケーションの入出力画面生成機能(特に、不正な画面遷移を抑止する機能)を実現するために適用されるものである。この入出力画面生成機能とは、対クライアント送信用の入出力画面情報(例えばHttp通信でWebサーバからWebブラウザに転送するための画面情報など)をクライアント機からのリクエスト情報に応じて生成する機能である。
以下、本発明のプログラムについて説明する。
本発明のプログラムは、本プログラム内に記述されている次の2つの処理ステップに特徴を有している。
一つ目の特徴的な処理ステップ(第一の特徴的な処理)は、クライアント機へ入出力画面情報を送信する前に、その入出力画面情報に含まれているコマンド情報(例えばWebブラウザに表示されたその入出力画面に含まれる所定のボタンをクライアントが入力指定したときに発行されるコマンド名などの情報)をサーバ機内のRAM(Random Access Memory)などのメモリに記憶させるステップである。
二つ目の処理ステップ(第二の特徴的な処理)は、クライアント機からリクエスト情報が送信されてきた場合に、そのリクエスト情報に含まれているコマンド情報が上記メモリに記憶されているコマンド情報と対応しているか否か(例えば一致しているか否か)を判定するステップである。ただし、これらの判定は、互いに共通のセッション内(同一セッション内)の情報を対象に行うものとする。
本プログラムを含むサーバ・アプリケーションが上述のサーバ機に実装され、そこで実行されると、クライアント機へ送信する入出力画面情報(この画面識別番号を「1」とする)の生成処理段階からその画面識別番号「1」の入出力画面情報のクライアントからの応答(サーバ機に対するリクエスト)を受信する受信処理段階までを1サイクルとして、上記2つのステップがその順に1回実行され、そのセッションが終了するまでの複数サイクルに渡って繰り返し実行される。
つまり、本プログラムがサーバ機で実行されると、サーバ機は、クライアント機から次に送られてくるであろうコマンド情報を常に予測できるようになり、それ以外のコマンド情報をリクエスト情報として受け取った場合は、これを検出し、その後に続く処理を振り分けることができる。
この振り分け方の一例を次に示す。
先ず、各コマンド情報が一致していた場合について示す。この場合はそのリクエスト情報は改竄のない正当なものと期待できる。そのため、続く処理では、通常の入出力画面生成処理を行い、そのリクエスト情報に応じた入出力画面情報を得る。
次に、各コマンド情報が一致していなかった場合について示す。この場合はそのリクエスト情報は改竄されていると考えられる。このため、続く処理では、例外処理を行い、この改竄されたリクエスト情報に基づいて通常の入出力画面生成処理をした場合における予定外の入出力画面情報の生成を抑止する。
このように、クライアント機から送信されたリクエスト情報が改竄されたものであった場合は、それをサーバ機で検出する事が可能になり、クライアント機に提供する入出力画面の不当な遷移を抑止し、その画面遷移順を正当な順番に維持できる。
上述したように、本発明のプログラムは、上記サーバ・アプリケーションの入出力画面生成機能(特に、不正な画面遷移を抑止する機能)をサーバ機で実現させるものである。そのプログラムのサーバ機への実装方法としては、例えば、本発明のプログラムを含むサーバ・アプリケーションを一から開発して、そのサーバ・アプリケーションをサーバ機のRAMやROMなどのメモリに読み込ませるなどして実装することができる。また、予め、本発明のプログラムをフレームワークとして提供し、このフレームワークを適宜組み込んでアプリケーションを完成させ、これらをサーバ機のRAMやROMなどのメモリに読み込ませるなどして実装してもよい。このように本プログラムをサーバ機に実装することにより、上述した入出力画面生成機能(特に、不正な画面遷移を抑止する機能)がサーバ機上で実現する。
以下に、本機能をフレームワークで実現した場合の例を説明する。
この例では、Webブラウザを実装したクライアント機とアプリケーションサーバよりなるサーバ機とが、LANやインターネットなどの通信ネットワークにより接続された構成を前提にしている。
上記アプリケーションサーバには、Webサーバや、上記フレームワークを実行するための各種のプログラムやファイルや、このフレームワークを取り入れて完成したWebアプリケーションなどが実装されている。本例では上記フレームワークをサーブレットやJSP(Java(登録商標) Server Pages)を使用してJAVA(登録商標)ベースで構築したため、それらを動かすサーブレットコンテナやJSPコンテナが更に実装されている。
この構成下では、Webブラウザから所定のアドレスが指定されることで、クライアント機からのリクエスト情報がWebサーバを介してサーブレット/JSPコンテナへ渡される。そして、サーブレットやJSPが実行されることにより、このリクエスト情報に基づいてフレームワークが実行される。例えば、制御処理などはサーブレットが行い、表示関係はJSPが行う。
図1はそのフレームワークの一例である。
このフレームワーク1は、所定の業務処理をビジネスクラスで行うように設計し、またクライアント機に出力する入出力画面情報の合成処理をJSPファイルで行うように設計し、更に、ビジネスクラスとの情報の受け渡しをデータBean(Java(登録商標)Bean形式のクラス)で行うように設計したものである。このため、本例では、予め、ビジネスクラス2とJSPファイル3、及び、これらの関係定義ファイル(コマンドマップ4及びページマップ5)を用意している。
また、上述のようにビジネスクラスとの情報の受け渡しをデータBeanで行うように設計しているため、リクエスト情報内(具体的にはリクエストパラメータ)に、データBean名(データ格納名とも呼ぶ)とコマンド名の値を含ませる。
ビジネスクラス2は、業務ごとのビジネスロジックが記述されたJava(登録商標)のクラスである。
JSPファイル3は、例えば各種形態のフォームを備えた入出力画面情報を得るためのJSPファイルである。
上記コマンドマップ4は、リクエスト情報とビジネスクラス2(より具体的にはビジネスクラス及びメソッド)とを対応付けた定義ファイルである。本例では、リクエスト情報にコマンド名とデータBean名を含ませるため、コマンドマップ4には、次のようにデータBean名、コマンド名、ビジネスクラス名、メソッド名の対応関係を記述しておきます。
<記述形式>
# [入力のデータBeanのクラス名];[コマンド]=[ビジネスクラス名];[メソッド名]
例)calc.BodyBean;add=calc.CalcHandler.add

上記ページマップ5は、ビジネスクラス2の結果情報とJSPファイル3のファイル名を対応付けた定義ファイルである。
そして、セッションクラス6やアプリケーションクラス7は、フレームワーク内に構成されている。特に、セッションクラス6は、セッション管理を行なうセッション管理テーブルや、コマンド情報(具体的には、データBean名及びコマンド名である。以下では、必要に応じてこの具体的な内容で示すこととする。)を管理するコマンド情報管理テーブルをオブジェクトとしてもっている。セッションクラスでは、初めてWebアプリケーションにアクセスがあったときにそのクライアント機のセッションオブジェクトを生成し、そのセッションを閉じるまでの一定期間、そのクライアント機とそのWebアプリケーション間の通信をそこでもつセッションの識別番号で管理する。前者のセッション管理テーブルは、そのための管理テーブルに使用されるものである。なお、後者のコマンド情報管理テーブルについては、後述することとする。
以上の条件の下に、本フレームワーク1の全体の流れを説明する。
FS1では、フレームワーク1がクライアント機側からリクエスト情報を受け取り、セッションクラスを用いてそのリクエスト情報に対する正当性検証の処理を行う。この処理は、上記第二の特徴的な処理に相当するものである。なお、この処理については、後で、更に詳しく説明する。
FS2では、フレームワーク1が、コマンドマップ2を参照して、リクエスト情報に合ったビジネスクラス4を決定する。
FS3では、処理がビジネスクラス4に移行され、このビジネスクラス4が実行される。
FS4では、そのビジネスクラス4の実行結果がフレームワーク1に返却される。
FS5では、フレームワーク1が、ページマップ3を参照して、ビジネスクラス4の実行結果に合ったJSPファイル7を決定する。
FS6では、処理がJSPファイル7に移行され、JSPファイル7が実行される。
FS7では、JSPファイル7の実行結果(これは、次にクライアント機へ出力されるJSPの入出力画面情報である)がフレームワーク1に返却され、このJSPの入出力画面情報を基にフレームワーク1がコマンド情報を抽出処理し、セッションクラスのコマンド情報管理テーブルに格納処理する。これらの処理は、上記第一の特徴的な処理に相当するものである(この処理についても、後で、更に詳しく説明する)。なお、このステップでは、上記JSPの入出力画面情報にビジネスクラスの結果情報を反映する処理なども行われる。
FS8では、上記入出力画面情報をWebサーバを介してクライアント機側に返却する。
図2は、上記フレームワークの機能ブロック図である。
同図には、当該フレームワークとデータの授受を行う関連ファイルや関連クラスなども共に明示している。これらにおいて、図1と同一のものについては、図1と同じ番号を付している。
本例のフレームワーク1は、制御部10、コマンド一覧情報チェック部12、及びコマンド一覧情報保持部14で構成されている。
制御部10は、図1に示したフレームワークの全体の制御、及びJSPの入出力画面情報からのコマンド情報の抽出処理やこの抽出したコマンド情報を後述のコマンド一覧情報保持部へ格納する処理(上記第一の特徴的な処理)を司る。
コマンド一覧情報チェック部12は、制御部10がクライアント側から受け取ったリクエスト情報の正当性を検査する処理部である。この処理部では、上記制御部10からリクエスト情報を受け取ると、そのリクエスト情報が属するセッション内のコマンド情報を後述のコマンド一覧情報保持部14から抽出して上記リクエスト情報と上記コマンド情報との対応関係をチェックする。そして、その結果情報を制御部10に返す。
コマンド一覧情報保持部14は、コマンド情報を記憶したコマンド情報管理テーブルである。このコマンド情報管理テーブルは、例えばセッション識別番号などによって上述したセッション管理テーブルと対応づけられており、制御部14から格納されたコマンド情報をセッション識別番号と関連付けて所定期間保持し、コマンド一覧情報チェック部12からの抽出依頼に応じて該当のセッション識別番号のコマンド情報を上記コマンド一覧情報チェック部に渡す。ただし、制御部14からコマンド情報が格納される際は、そのセッション識別番号に既に対応付けて保持されているコマンド情報(以前に格納されたコマンド情報)を削除して、新たに格納されるコマンド情報をそのセッション番号に対応づけ、1つのセッション識別番号に対してコマンド情報を一つだけ対応するようにするものとする。また、セッションが切れると、そのコマンド情報を削除する。
図3は、上記制御部の処理(前段部分の処理)を構成するプログラムのフロー図である。
本フロー図には、リクエスト情報を受信してからビジネスクラスへ処理を振り分けるまでの処理が記述されている。
ステップS10は、リクエスト情報を受信する処理である。
ステップS12は、そのリクエスト情報を解析し、コマンド名及びデータBean名を抽出する処理である。
ステップS14は、リクエスト正当性検証処理(図5の処理)をコマンド一覧情報チェック部12に行わせる処理である。この処理で、ステップS12で抽出したリクエストパラメータをコマンド一覧情報チェック部12へ渡し、コマンド一覧情報チェック部12からその検証処理結果を受け取る。
ステップS16は、上記リクエストパラメータに対応するビジネスクラスおよびメソッドを上記コマンドマップ2から決定する処理である。
ステップS18は、ステップS14でコマンド一覧情報チェック部12から受け取った検証処理結果にエラー情報が含まれているか否かを判定する処理である。
ステップS20は、ステップS18でエラー情報を含まないと判定された場合に行う処理であり、この処理では、ステップS16で決定したビジネスクラス及びメソッドに実行処理(通常処理)を通知する。
ステップS22は、ステップS18でエラー情報を含むと判定された場合に行う処理であり、この処理では、ステップS16で決定したビジネスクラス及びメソッドに例外の実行処理(例外処理)を通知する。
図4は、リクエスト正当性検証処理プログラムのフロー図である。
本プログラムは、図3の制御部の処理ステップ14にコマンド一覧情報チェック部12で実行される処理である。以下に示す処理は、制御部からリクエスト情報を受け取った後に実行される。
ステップS140は、当該リクエスト情報に対してセッションが発行されているか否かを判定する処理である。
ここでは、セッション管理テーブルにその識別情報番号がない(NULL)であった場合に、セッション識別番号が付与されていない始めてのリクエストであると判定し、NULLで無かった場合に、すでにセッション番号が付与されている2回目以降のリクエストであると判定する。
若し、NULLであった場合は、セッション識別番号を発行してセッション管理テーブルに登録するなどして本処理を終了し、検証処理結果としてエラー無しの情報を制御部へ渡す。
ステップS142は、ステップS140でNULLでないと判定された場合の処理で、コマンド情報管理テーブルからそれと同一セッションに属するコマンド情報格納位置から情報を取得する。
ステップS144は、コマンド情報の有無を判定する処理である。ステップS142で抽出した情報にコマンド情報が含まれているか否かを判定する。
ステップS146は、ステップS144でコマンド情報が含まれていないと判定された場合の処理である。この処理では、リクエスト情報にコマンド情報が含まれているか否かを更に判定する。特に、この処理でリクエスト情報にコマンド情報が含まれていないと判定された場合は、このリクエスト情報の送信の基になった画面内にコマンド情報が元々含まれていないことを表わしている。そのため、その判定結果の場合には、このリクエストは、クライアントによるリクエストの改竄のない正当なリクエストであると判断されるため、この場合には本処理を終了し、検証処理結果としてエラー無しの情報を制御部へ渡す。
ステップS148は、ステップS146でリクエスト情報にコマンド情報が含まれていると判定された場合の処理である。この判定結果の場合、クライアント機で改竄された不当なリクエストであると判断されるため、例外処理を保存して本処理を終了し、検証処理結果としてエラー有りの情報を制御部へ渡す。
ステップS150は、ステップS144でコマンド情報が含まれていると判定された場合の処理である。この処理では、そのコマンド情報のコマンド名及びデータBean名と、リクエスト情報内のコマンド名とデータBean名とが一致しているか否かを判定する。特に、この処理で一致していると判定された場合は、このリクエストの送信の基になった画面に基づいて正しくコマンド情報が発行されてきたものと判断される。このため、その判定結果の場合には、本処理を終了し、検証処理結果としてエラー無しの情報を制御部へ渡す。
ステップS152は、ステップS150で一致していないと判定された場合の処理である。この判定結果の場合、クライアント機で改竄された不当なリクエストであると判断されるため、例外処理を保存して本処理を終了し、検証処理結果としてエラー有りの情報を制御部へ渡す。
図5は、JSPファイルの解析処理の処理フローである。
ステップS500は、JSPの入出力画面情報内に拡張タグ(本例では、共通JSPインタフェース(UJI))があるか否かを判定する処理である。この処理で拡張タグがないと判定されると、本処理を終了する。
ステップS502は、ステップS500で拡張タグがあると判定された場合に実行する処理である。この処理では、クライアント機に入力フォームを提供するフォームに関する拡張タグ(FORMタグ)があるか否かを判定する。この処理でフォームに関する拡張タグがないと判定されると、ステップS504の処理をとばしてステップS506の処理に移行する。
ステップS504は、ステップS502でフォームに関する拡張タグがあると判定された場合の処理である。この処理では、その拡張タグに含まれるコマンド名及びデータBean名をコマンド情報管理テーブルに保存する。
ステップS506は、当該JSPの入出力画面情報を基に、画面を構築する処理である。
なお、ステップS500からS506までの一連の処理は、一つの入出力画面においてフォーム単位で行われ、一つの入出力画面内に複数のフォームが繰り返し記述されている場合は、全てのフォームを対象にその処理が実行されるまで繰り返される。
図6は、プログラムの実行時に制御部から見た場合の、図5の処理(JSPファイルの解析処理)の順番を示した図である。
ステップS50は、図3のステップS20の通知をトリガに実行されるビジネスクラスの処理である。
ステップS52は、上記JSPファイルの解析処理である。
このように、JSPファイルの解析処理は、上記ビジネスクラスの実行結果を制御部が受け取った後に行われるように設定する必要がある。
ここで、上記JSPの入出力画面及びコマンド情報管理テーブルの具体例をあげる。
図7は、JSPファイルから出力されるJSPの入出力画面情報(言い換えると、制御部で取得されるJSPの入出力画面情報)の具体例である。
同図に示されるように、本入出力画面情報30はJSPで記述されている。
1行目と2行目は、拡張タグ(本例では、ujiタグ)を使用していることの宣言文などを示している。
3行目は、この入出力画面情報に対応するデータBeanの名前(id)を定義している。また更に、クライアント機の画面が複数ウインドウまたはフレーム分割された場合であって、そのうちの一画面領域に本入出力画面情報を対応させる場合の例として、本入出力画面情報が対応する画面領域を示す情報(本例では、HEAD領域とBODY領域の2領域のうちのBODY領域を示す情報)を定義している。
そして、4行目から最後の行までのフォームタグ内で、クライアント機側で上記画面領域に表示させる入力フォームを記述している。
本例では、その4行目のフォームの開始タグ(<uji:form>)の中に、入力フォームに使用するコマンド名や、対応するデータBean名などを全て纏めて記述した態様をとっている。具体的には、verbsに指定されている値(login)がコマンド名であり、beanIdに指定されている値(body)が上記画面領域の名前であり、BeanClsに指定されている値(security.BodyBean)が、上記Bean名である。なお、画面領域の名前はサーバ機で対応するBean名に置き換えられる。また、クライアント機では、そのフォーム内のボタンが押下されることでそのボタンのコマンド名(login)が発行され、データBean名と共にリクエスト情報に含ませてサーバ機に送信される。
この入出力画面情報を対象に図6のJSPファイルの解析処理を実行すると、本入出力画面情報30のFORMタグ(<uji:form>)に含まれる上記コマンド名(login)及び画面領域名(body)、また必要に応じてデータBean名(security.BodyBean)も抽出され、コマンド情報管理テーブルに格納される。コマンド情報としては、コマンド名及びデータBean名があれば構成できるが、必要に応じて、データBean名に画面領域名を加えたり、またはデータBean名に換えて画面領域名を使用するなどして良い。
なお、本例ではコマンド情報を一組(loginとbodyの一組)としたが、複数組ある場合は、当然、それらの全てを抽出し、コマンド情報管理テーブルに格納する。
また、本例では、一画面領域(BODY領域)に一つのフォーム(開始タグ(<uji:form>)と終了(</uji:form>)の一組で示されるフォーム)しか構成されていないが、フォームが複数ある場合は、各フォームごとにコマンド情報を抽出し、コマンド情報管理テーブルに格納する。
図8は、コマンド情報管理テーブルの一例である。
一般的に、Webアプリケーションでは、1画面内に複数の送信ボタンが存在する場合や、フレームで画面が分割されている場合や、さらには複数のウィンドウで1つのアプリケーションを構成している場合がある。これらを考慮して、本例では、以下の形式でコマンド情報を保持するようにする。
コマンド情報の最小単位は、データ格納名(データBean名や画面領域名)及びコマンド名の組み合わせとする。この場合、一つのデータ格納名に対して複数のコマンド名が組み合わさる場合もある。
上記コマンド情報をフォームの単位に纏めて保持する。
上記フォーム単位で纏められたコマンド情報をフレーム単位またはウインドウ単位に纏めて保持する。
このような形態では、例えば、フレーム名やウインドウ名をキーに利用するなどして、対象のコマンド情報を抽出したり、対象の領域にコマンド情報を格納したり、または対象の領域のコマンド情報を削除したりすることができる。
以上示してきた、図3から図6に示される手順のプログラムや、図7に示されるJSPの入出力画面情報を出力するJSPファイルや、図8に示されるコマンド情報管理テーブルや、その他、定義ファイルやビジネスクラスなどの必要なファイルを含むWebアプリケーション、また、この実行環境として当然に必要とされる各種プログラムやデータは、サーバ機にインストールしておき、クライアントからリクエストを受けた時に直ぐにCPUで実行されるように、活性化しておく。
こうすることにより、図3に示す機能がサーバ機上で実現され、クライアント機から送信されたリクエスト情報を基に、図2に示す処理フローが行われるようになる。
図9は、そのサーバ機のシステム構成図の一例である。
本サーバ機は、CPU(中央演算処理装置)1000、ROMやRAMなどのメモリ1002、ハードディスク1004、通信部1006、記録媒体読取部1008、及びキーボードやモニタなどと接続される入出力部1010がバス1012に接続されて構成されている。
上記各プログラムやファイルは、ハードディスク1004からメモリ1002に読み込まれるなどして、CPU1000により処理が実行される。
なお、以上説明してきた各プログラムやファイルは、その一部若しくは全部を、図10に示されるようなフロッピー(登録商標)ディスク(登録商標)、CD−ROM、或いはDVDなどの記録媒体1100に記録させて配布したり、または、図11に示されるような公衆網等で用いられる伝送媒体1200を介して配信するようにしたりすることができる。
ユーザのコンピュータは図9に示される構成と同様であるため、図9に示されるサーバ機の構成を用いて上記ケースを説明すると、それを受けとったユーザは、記録媒体読取部1008や通信部1006を介して上記プログラムやファイルをハードディスク1004にコピーすることができる。そして、ハードディスク1004にコピーした各プログラムやファイルをメモリ1002に読み込んでCPU1000で処理を実行させることにより、ユーザのコンピュータ上で、上記各機能を実現させることが可能になる。
以上より、クライアント機から送信されたリクエスト情報が改竄されたものであった場合は、それをサーバ機で検出する事が可能になり、クライアント機に提供する入出力画面の不当な遷移を抑止し、その画面遷移順を正当な順番に維持できる。
(付記1)
対クライアント送信用の入出力画面情報を生成する機能をサーバ機で実現させることが可能なプログラムであって、クライアント機へ送信する上記入出力画面情報のコマンド情報をメモリに記憶させるステップと、クライアント機からリクエスト情報が送信されてきた場合に、上記メモリに記憶した同一セッション内のコマンド情報に上記リクエスト情報が対応しているか否かを判定するステップと、をサーバ機で実行することが可能なプログラム。
(付記2)
クライアント機へ送信する上記入出力画面情報のコマンド情報をメモリに記憶させるステップでは、上記コマンド情報を記憶する際に同一セッション内で以前に記憶されたコマンド情報を削除する、ことを特徴とする付記1に記載のプログラム。
(付記3)
Webアプリケーションの入出力画面の生成機能をサーバ機に実現させることが可能なプログラムであって、業務処理を行うビジネスクラスと、同一セッションの画面をセッション識別番号で管理するセッションクラスと、複数種類のJSPファイルと、を有し、 クライアント機から送信されたコマンド名とデータ格納名との組み合わせに基づいて上記ビジネスクラスを決定するステップと、上記ビジネスクラスから得た結果情報に基づいて上記複数種類のJSPファイルの中からJSPファイルを決定するステップと、上記JSPファイルから得られる入出力画面情報を基に、上記コマンド名とこれに対応するデータBean名とを抽出し、上記セッションクラスにセッション識別番号と対応付けて格納するステップと、クライアント機からデータBean名とコマンド名とを受信した際に、該データBean名と該コマンド名とが上記セッションクラスに格納した同一セッション内のデータBean名とコマンド名とに対応しているか否かを判定するステップと、対応していないと判定された場合に、例外処理を行うステップと、をサーバ機で実行することが可能なプログラム。
(付記4)
上記JSPファイルから得られる入出力画面情報を基に、上記コマンド名とこれに対応するデータBean名とを抽出し、上記セッションクラスにセッション識別番号と対応付けて格納するステップにおいて、上記コマンド名とこれに対応するデータBean名とをセッション識別番号と対応付けて格納する際に、上記セッションクラスに以前に格納された同一セッション識別番号の上記コマンド名とデータBean名とを削除する、ことを特徴とする付記3に記載のプログラム。
(付記5)
上記JSPファイルから得られる入出力画面情報を基に抽出される上記コマンド名は、上記入出力画面情報のJSP拡張タグの位置に示されるコマンド名である、ことを特徴とする付記3または4に記載のプログラム。
(付記6)
上記JSPファイルから得られる入出力画面情報を基に抽出される上記コマンド名は、上記入出力画面情報のFORMタグの位置に示されるコマンド名である、ことを特徴とする付記5に記載のプログラム。
(付記7)
付記1乃至6の内の何れか一つに記載のプログラムを格納した記録媒体。
(付記8)
付記1乃至6の内の何れか一つに記載のプログラムをCPUで実行可能なように実装したサーバ機。
(付記9)
対クライアント送信用の入出力画面情報の生成時に不正な画面遷移をサーバ機で抑止する方法であって、クライアント機へ送信する上記入出力画面情報のコマンド情報をメモリに記憶し、クライアント機からリクエスト情報が送信されてきた場合に、上記メモリに記憶した同一セッション内のコマンド情報に上記リクエスト情報が対応しているか否かを判定し、対応していない場合に、例外処理を行う、ことを特徴とする方法。
(付記10)
上記コマンド情報を記憶する際に、同一セッション内で以前に記憶されたコマンド情報を削除する、ことを特徴とする付記9に記載の方法。
(付記11)
Webアプリケーションの入出力画面を生成する際に不正な画面遷移をサーバ機で抑止する方法であって、クライアント機から送信されたコマンド名とデータ格納名との組み合わせに基づいてビジネスクラスを決定し、上記ビジネスクラスから得た結果情報に基づいて複数種類のJSPファイルの中からJSPファイルを決定し、上記JSPファイルから得られる入出力画面情報を基に、上記コマンド名とこれに対応するデータBean名とを抽出して、セッションクラスにセッション識別番号と対応付けて格納し、クライアント機からデータBean名とコマンド名とを受信した際に、該データBean名と該コマンド名とが上記セッションクラスに格納した同一セッション内のデータBean名とコマンド名とに対応しているか否かを判定し、対応していないと判定された場合に、例外処理を行う、ことを特徴とする方法。
(付記12)
上記コマンド名とこれに対応するデータBean名とをセッション識別番号と対応付けて格納する際に、上記セッションクラスに以前に格納された同一セッション識別番号の上記コマンド名とデータBean名とを削除する、ことを特徴とする付記11に記載の方法。
(付記13)
上記JSPファイルから得られる入出力画面情報に基づき、JSP拡張タグの位置に示されるコマンド名を抽出する、ことを特徴とする付記11または12に記載の方法。
(付記14)
上記JSPファイルから得られる入出力画面情報に基づき、FORMタグの位置に示されるコマンド名を抽出する、ことを特徴とする付記13に記載の方法。
フレームワークの一例である。 フレームワークの機能ブロック図である。 制御部の処理(前段部分の処理)を構成するプログラムのフロー図である。 リクエスト正当性検証処理プログラムのフロー図である。 JSPファイルの解析処理の処理フローである。 JSPファイルの解析処理の順番を示した図である。 JSPファイルから出力されるJSPの入出力画面情報の具体例である。 コマンド情報管理テーブルの一例である サーバ機のシステム構成図の一例である。 記録媒体の図 伝送媒体の図 従来の不正な画面遷移図
符号の説明
1 フレームワーク
2 ビジネスクラス
3 JSPファイル
4 コマンドマップ
5 ページマップ
6 セッションクラス
7 アプリケーションクラス

Claims (5)

  1. コンピュータに、
    処理要求コマンドと対応付けられた表示要素を含む画面についての画面情報を、他のコンピュータに送信する場合に、前記画面情報に含まれる前記処理要求コマンドを記憶手段に記憶し、
    前記他のコンピュータから、処理要求コマンドを含むデータを受信した場合に、受信した前記データに含まれる処理要求コマンドが、前記記憶手段に記憶されている前記処理要求コマンドと合致するか否かの判定を行なう、
    ことを実行させることを特徴とする判定プログラム。
  2. 前記コンピュータに、
    前記判定の結果、合致しない場合に、前記データに含まれる処理要求コマンドの実行を抑止する、
    ことを実行させることを特徴とする請求項1に記載の判定プログラム。
  3. 前記コンピュータに、
    前記判定の結果、合致する場合に、前記記憶手段に記憶された前記処理要求コマンドを削除する、
    ことを実行させることを特徴とする請求項1又は請求項2に記載の判定プログラム。
  4. コンピュータに、
    処理要求コマンドと対応付けられた表示要素を含む画面についての画面情報を、他のコンピュータに送信する場合に、前記画面情報に含まれる前記処理要求コマンドを記憶手段に記憶し、
    前記他のコンピュータから、処理要求コマンドを含むデータを受信した場合に、受信した前記データに含まれる処理要求コマンドが、前記記憶手段に記憶されている前記処理要求コマンドと合致するか否かの判定を行なう、
    ことを実行させることを特徴とする判定方法。
  5. 処理要求コマンドと対応付けられた表示要素を含む画面についての画面情報を、他のコンピュータに送信する場合に、前記処理要求コマンドを前記画面情報から抽出する抽出手段と、
    前記抽出手段が抽出した前記処理要求コマンドを記憶する記憶手段と、
    前記他のコンピュータから、処理要求コマンドを含むデータを受信した場合に、受信した前記データに含まれる処理要求コマンドが、前記記憶手段に記憶されている前記処理要求コマンドと合致するか否かの判定を行なう判定手段と、
    を含むことを特徴とする判定装置。
JP2006092513A 2006-03-29 2006-03-29 判定プログラム、判定方法及び判定装置 Expired - Fee Related JP4878193B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006092513A JP4878193B2 (ja) 2006-03-29 2006-03-29 判定プログラム、判定方法及び判定装置
US11/494,908 US20070233818A1 (en) 2006-03-29 2006-07-28 Recording medium storing input/output screen generation program, and method for suppressing an unreasonable screen shift

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006092513A JP4878193B2 (ja) 2006-03-29 2006-03-29 判定プログラム、判定方法及び判定装置

Publications (2)

Publication Number Publication Date
JP2007265291A JP2007265291A (ja) 2007-10-11
JP4878193B2 true JP4878193B2 (ja) 2012-02-15

Family

ID=38560718

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006092513A Expired - Fee Related JP4878193B2 (ja) 2006-03-29 2006-03-29 判定プログラム、判定方法及び判定装置

Country Status (2)

Country Link
US (1) US20070233818A1 (ja)
JP (1) JP4878193B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5197726B2 (ja) * 2010-12-20 2013-05-15 株式会社東芝 画面遷移制御装置
JP5606599B1 (ja) * 2013-07-29 2014-10-15 デジタルア−ツ株式会社 情報処理装置、プログラム及び情報処理方法
JP5738448B2 (ja) * 2014-03-12 2015-06-24 株式会社三菱東京Ufj銀行 情報処理装置
JP6308042B2 (ja) * 2014-06-18 2018-04-11 富士ゼロックス株式会社 情報処理システム
US10032027B2 (en) * 2014-07-29 2018-07-24 Digital Arts Inc. Information processing apparatus and program for executing an electronic data in an execution environment

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000112888A (ja) * 1998-10-09 2000-04-21 Toshiba Corp ブラウザ操作管理装置及びプログラムを記録したコンピュータ読み取り可能な記録媒体
JP3688914B2 (ja) * 1998-11-25 2005-08-31 株式会社東芝 Webシステムの処理順序監視装置及びプログラムを記録したコンピュータ読み取り可能な記憶媒体
JP2001160033A (ja) * 1999-12-03 2001-06-12 Hitachi Ltd WWW(WorldWideWeb)適用業務における画面遷移管理方法
US7051069B2 (en) * 2000-09-28 2006-05-23 Bea Systems, Inc. System for managing logical process flow in an online environment
US7702800B2 (en) * 2000-12-18 2010-04-20 International Business Machines Corporation Detecting and handling affinity breaks in web applications
US6823360B2 (en) * 2000-12-18 2004-11-23 International Business Machines Corp. Cofetching in a command cache
US6877025B2 (en) * 2000-12-18 2005-04-05 International Business Machines Corp. Integrated JSP and command cache for web applications with dynamic content
US20020116583A1 (en) * 2000-12-18 2002-08-22 Copeland George P. Automatic invalidation dependency capture in a web cache with dynamic content
US20020116582A1 (en) * 2000-12-18 2002-08-22 Copeland George P. Batching of invalidations and new values in a web cache with dynamic content
US20020112125A1 (en) * 2000-12-18 2002-08-15 Copeland George P. Command caching to improve network server performance
US20020111992A1 (en) * 2000-12-18 2002-08-15 Copeland George P. JSP composition in a cache for web applications with dynamic content
US7249262B2 (en) * 2002-05-06 2007-07-24 Browserkey, Inc. Method for restricting access to a web site by remote users
JP2003345744A (ja) * 2002-05-23 2003-12-05 Nec Corp Webアプリケーションサーバおよび業務処理制御方法
JP4257139B2 (ja) * 2003-03-24 2009-04-22 株式会社日本総合研究所 情報処理方法、および、処理プログラム
JP4488701B2 (ja) * 2003-08-22 2010-06-23 キヤノンソフトウェア株式会社 プログラム生成装置およびプログラム生成方法およびプログラム

Also Published As

Publication number Publication date
US20070233818A1 (en) 2007-10-04
JP2007265291A (ja) 2007-10-11

Similar Documents

Publication Publication Date Title
US20020059364A1 (en) Content certification
US20100082747A1 (en) Real-time collaborative browsing
JP2007293855A (ja) ロギングとデータ交換同期のセキュアかつ効率的な方法
JP5522850B2 (ja) 脆弱性診断装置
US20130024769A1 (en) Apparatus and method for processing a document
JP4878193B2 (ja) 判定プログラム、判定方法及び判定装置
WO2000075779A2 (en) Token based data processing systems and methods
EP1160644B1 (en) Data terminal equipment
CN111539001A (zh) 一种基于企业用户的简化pdf文档电子签名的方法及系统
CN101836214A (zh) 对数字媒体内容未经许可的复制的保护
JP5341695B2 (ja) 情報処理システム、情報処理方法、およびプログラム
CN116051303A (zh) 一种电子凭证识别处理的方法、装置、设备及介质
EP1293857A1 (en) Server access control
JP5567906B2 (ja) 画面の再現を支援する装置及び方法
JP2008242994A (ja) 記録管理装置
US20230269095A1 (en) Verification method and information processing apparatus
CN116055180B (zh) 一种基于网关的互联网资源备案信息查询验证方法及装置
KR100992842B1 (ko) 공인전자문서보관소와 연계하여 증명서를 발급하는 시스템 및 방법
JP5274401B2 (ja) 管理装置及び管理方法及びプログラム
JP2000132449A (ja) 代理アクセス方法、装置、および代理アクセスプログラムを記録した記録媒体
JP4381324B2 (ja) サーバ装置及びサーバプログラム
JP2004295512A (ja) Webアプリケーション開発支援装置及びその方法
JP2008139993A (ja) ホームページ検証システム及び方法
JP2010039525A (ja) 情報処理装置及び管理装置及びプログラム
JP5183331B2 (ja) 通信再現装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080818

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110705

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110630

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110905

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20111122

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111125

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4878193

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141209

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees