JP5063258B2 - 操作ログを記録するためのシステム、方法およびコンピュータ・プログラム - Google Patents

操作ログを記録するためのシステム、方法およびコンピュータ・プログラム Download PDF

Info

Publication number
JP5063258B2
JP5063258B2 JP2007217106A JP2007217106A JP5063258B2 JP 5063258 B2 JP5063258 B2 JP 5063258B2 JP 2007217106 A JP2007217106 A JP 2007217106A JP 2007217106 A JP2007217106 A JP 2007217106A JP 5063258 B2 JP5063258 B2 JP 5063258B2
Authority
JP
Japan
Prior art keywords
request
response
client
content
logging
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.)
Active
Application number
JP2007217106A
Other languages
English (en)
Other versions
JP2009053740A (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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP2007217106A priority Critical patent/JP5063258B2/ja
Priority to US12/121,835 priority patent/US8554740B2/en
Publication of JP2009053740A publication Critical patent/JP2009053740A/ja
Application granted granted Critical
Publication of JP5063258B2 publication Critical patent/JP5063258B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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

Description

本発明は、一般的には、ロギングに関する。特に、本発明は、視覚的でわかりやすい操作ログを記録するための技術に関する。
近年、相次ぐ会計不祥事やコンプライアンスの欠如などを防止するための法整備が進められている。その結果、監査等のため、Webアプリケーションなどに対する操作ログを記録することが必要となってきている。監査等のためには、ある取引に関するすべてのトランザクション(しばしば複数のWebアプリケーションを横断する)を網羅してロギングする必要がある。また、操作ログは、人間が見てわかりやすい形式で提示されることが望ましい。
あらゆるWebアプリケーションの通信を網羅的に記録する従来技術として、すべてのIPパケットを記録する装置が市販されている。しかしながら、このような装置は、すべての通信データを記録しているものの、単に、IPパケット・レベルのデータを記録しているだけである。そのため、そのままでは、人間にとってわかりやすい情報ではなく、監査等のために必要な情報を速やかに提供することは困難である。
また、例えば、IBM(登録商標) FormWave(登録商標)など、アプリケーション・フレームワーク・レベルで、クライアント上で申請する際のHTMLフォームの入力画面イメージを記録する機能を提供する製品が存在する。このような入力画面イメージは、人間にとってわかりやすい情報である。しかしながら、これらの製品は、アプリケーション・フレームワークを越えてロギングの連携を行うことはできない。
したがって、本発明の課題は、クライアントとサーバの間の処理における、視覚的でわかりやすい操作ログを記録するためのロギング・システム、方法およびコンピュータ・プログラムを提供することである。より詳細には、本発明は、監査に適したものとするため、クライアント(ブラウザ)側ではなく、クライアントとサーバの間でロギングすることを実現し、これにより、既存アプリケーションの書き換えを要しないロギング・システム、方法およびコンピュータ・プログラムを提供することを課題とする。さらに、本発明は、複数サーバおよび複数アプリケーションが存在する環境においても統一的にロギングすることが可能なロギング・システム、方法およびコンピュータ・プログラムを提供することを課題とする。
上記課題を解決するために、本発明は、クライアントのリクエストに応答してサーバが送信したレスポンスに対する操作ログを記録するためのシステムを提供する。本発明にかかるシステムは、サーバがクライアントに送信したレスポンスを受信するレスポンス受信部であって、前記レスポンスは前記クライアントにデータ入力を指示するコンテンツを含むものと、前記リクエストに対応する前記コンテンツを識別するための識別子を組み込んだレスポンスを前記クライアントに送信するレスポンス送信部と、前記コンテンツと前記識別子とを関連づけて記録するロギング・データベースと、前記クライアントが前記レスポンスに対して前記サーバに送信したリクエストを受信するリクエスト受信部であって、前記リクエストは前記コンテンツへの入力データと前記識別子とを含むものと、前記リクエストから取り出した前記入力データを、前記リクエストから取りだした前記識別子を使用して前記ロギング・データベースから検索されたコンテンツと合成して前記ロギング・データベースに記録するコンテンツ合成部とを備える。
好ましくは、システムは、前記サーバから受信したレスポンスを解析し、操作ログを記録するか否かを判断するレスポンス解析部をさらに備えることができる。これにより、システムは、ロギングの対象を選択することが可能となる。
システムは、前記リクエストに対応する前記コンテンツを識別するための識別子を生成し、当該識別子を前記コンテンツに埋め込む識別子埋め込み部をさらに備えることができる。
好ましくは、システムは、前記リクエストから取り出した前記識別子が前記ロギング・データベースに見つからなかった場合、当該リクエストは不正なリクエストであると判断して所定の処理を行う不正リクエスト処理部をさらに備えることができる。これにより、システムは、不正なリクエストを発見し、適切な処理を行うことが可能となる。
好ましくは、前記ロギング・データベースは、前記コンテンツと関連づけて、セッションID、クライアントIPアドレス、識別済みのユーザID、送信ボタンに対応したURLのうちの1つまたは複数を記録し、これらの情報が前記クライアントから受信した前記リクエストのものと一致しない場合、当該リクエストが不正なリクエストであると判断して所定の処理を行う不正リクエスト処理部をさらに備えることができる。これにより、さらに厳しいチェックが可能となり、信頼性の高いシステムを提供することが可能となる。
好ましくは、使用されたコンテンツの順序を追跡できるようにするため、ロギング・データベースは、前記識別子を、その生成された順序と関連づけて記録するようにする。
以上、システムとして本発明の概要を説明したが、本発明は、方法またはコンピュータ・プログラム(またはプログラム製品)として把握することもできる。プログラム製品は、例えば、前述のプログラムを格納した記憶媒体を含め、あるいはプログラムを伝送する媒体を含めることができる。
上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではなく、これらの構成要素のコンビネーションまたはサブコンビネーションもまた、発明となり得ることに留意すべきである。
以下、本発明を実施するための最良の形態を図面に基づいて詳細に説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではなく、また実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
また、本発明は多くの異なる態様で実施することが可能であり、実施の形態の記載内容に限定して解釈されるべきものではない。また、実施の形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須とは限らないことに留意されたい。実施の形態の説明の全体を通じて同じ要素には同じ番号を付している。
図1は、本発明の実施形態おけるロギング・システムの外観の一例を示した図である。ロギング・システム100は、一つまたは複数のクライアント・コンピュータ200および一つまたは複数のアプリケーション・サーバ300に接続される。ロギング・システム100は、クライアント200とアプリケーション・サーバ300との間に配置されればよく、例えば、認証サーバ上、認証サーバとアプリケーション・サーバ300との間、アプリケーション・サーバ300上のフィルタ・サーブレットとして、または、アプリケーション・サーバ前段のWebサーバのプラグインとして配置されてもよい。
図7は、本発明の実施の形態におけるロギング・システム100が稼働するコンピュータ、クライアント・コンピュータ200、アプリケーション・サーバ300を実現するために好適な情報処理装置700のハードウェア構成を例示する図である。情報処理装置は、中央処理装置(CPU)1とメインメモリ4を含んでいる。CPU1とメインメモリ4は、バス2を介して、補助記憶装置としてのハードディスク装置13と接続されている。また、フレキシブルディスク装置20、MO装置28、CR−ROM装置26、29などのリムーバブルストレージ(記録メディアを交換可能な外部記憶システム)が関連するフレキシブルディスク・コントローラ19、IDEコントローラ25、SCSIコントローラ27などを介してバス2へ接続されている。
フレキシブルディスク装置20、MO装置28、CR−ROM装置26、29などのリムーバブルストレージには、それぞれフレキシブルディスク、MO、CD−ROMなどの記憶媒体が挿入され、このフレキシブルディスク等やハードディスク装置13、ROM14には、オペレーティング・システムと協働してCPU等に命令を与え、本発明を実施するためのコンピュータ・プログラムのコードを記録することができる。メインメモリ4にロードされることによってコンピュータ・プログラムは実行される。コンピュータ・プログラムは圧縮し、また複数に分割して複数の媒体に記録することもできる。
情報処理装置は、さらに、ユーザ・インターフェイス・ハードウェアとして、マウス等のポインティング・デバイス7、キーボード6や視覚データをユーザに提示するためのディスプレイ12を有することができる。また、パラレルポート16を介してプリンタ(図示せず)と接続することや、シリアルポート15を介してモデム(図示せず)を接続することが可能である。サーバ100は、シリアルポート15及びモデムを介し、また、通信アダプタ18(イーサネット(登録商標)・カードやトークンリング・カード)等を介してネットワークに接続し、他のコンピュータ等と通信を行うことが可能である。
以上の説明により、本発明の実施の形態における情報処理装置は、メインフレーム、ワークステーション、通常のパーソナルコンピュータ(PC)等の情報処理装置、または、これらの組み合わせによって実現されることが容易に理解されるであろう。ただし、これらの構成要素は例示であり、そのすべての構成要素が本発明の必須構成要素となるわけではない。
本発明の実施に使用される情報処理装置の各ハードウェア構成要素を、複数のマシンを組み合わせ、それらに機能を配分し実施する等の種々の変更は当業者によって容易に想定され得るものであり、それらの変更は、当然に本発明の思想に包含される概念である。
本発明の実施の形態におけるロギング・システム100が稼働するコンピュータ、クライアント・コンピュータ200、アプリケーション・サーバ300は、オペレーティング・システムとして、マイクロソフト・コーポレーションが提供するWindows(登録商標)オペレーティング・システム、インターナショナル・ビジネス・マシーンズ・コーポレーションが提供するAIX(登録商標)z/OS(登録商標)、アップル・コンピュータ・インコーポレイテッドが提供するMac OS、あるいはLinux(登録商標)などのGUIマルチウィンドウ環境をサポートするものを採用することができる。
また、ロギング・システム100が稼働するコンピュータ、クライアント・コンピュータ200、アプリケーション・サーバ300は、オペレーティング・システムとして、インターナショナル・ビジネス・マシーンズ・コーポレーションが提供するPC−DOS、マイクロソフト・コーポレーションが提供するMS−DOSなどのキャラクタ・ベース環境のものを採用することもできる。さらに、本発明の実施の形態におけるロギング・システム100が稼働するコンピュータ、クライアント・コンピュータ200、アプリケーション・サーバ300は、インターナショナル・ビジネス・マシーンズ・コーポレーションが提供するOS/Open、Wind River Systems,Inc.のVx WorksなどのリアルタイムOS、Java(登録商標)OSなどのネットワーク・コンピュータに組み込みオペレーティング・システムを採用することもできる。
以上から、本発明の実施形態におけるロギング・システム100が稼働するコンピュータ、クライアント・コンピュータ200、アプリケーション・サーバ300は、特定のオペレーティング・システム環境に限定されるものではないことを理解することができる。ロギング・システム100が稼働するコンピュータ、クライアント・コンピュータ200、アプリケーション・サーバ300は、それぞれ異なるオペレーティング・システム環境で動作するようにしてもよいことは勿論である。
図2は、本発明の実施形態におけるロギング・システム100を機能ブロックに分類して示す図である。なお、図2の機能ブロック図に示す各要素は、図7に例示したハードウェア構成を有する情報処理装置において、ハードディスク装置13などに格納されたオペレーティング・システムやコンピュータ・プログラムをメインメモリ4にロードした上でCPU1に読み込ませ、ハードウェア資源とソフトウェアを協働させることによって実現することができる。
ロギング・システム100は、レスポンス受信部101、レスポンス解析部102、ID埋め込み部103、ロギング・データベース104、レスポンス送信部105、リクエスト受信部106、コンテンツ合成部107、リクエスト送信部108を含む。
レスポンス受信部101は、クライアント(ブラウザ)200からのHTTPリクエストに応じて、アプリケーション・サーバ300がHTTPレスポンスとして送信したHTMLファイルを受信する。ここで、HTMLファイルは、XHTMLファイルなども含むものとして説明する。
監査等を目的とする場合、参照系のアプリケーション(例えば、静的なHTMLだけで構成されるWebサイト)よりも、ユーザによる入力が想定される申請系のフォーム・アプリケーションに対する操作ログを記録することが特に重要になる。したがって、本発明の好適な実施形態においては、ロギング・システム100は、フォーム・アプリケーションを選択してロギングする。そこで、ロギング・システム100は、受信したHTTPレスポンスを解析して、操作ログを記録すべきものかどうかを判定するレスポンス解析部102をさらに備える。
図3は、本発明の好適な実施形態において、ロギングの対象とするコンテンツである入力フォームとそれに対応するHTMLファイルの具体例を示す図である。このHTMLファイルにおいて、formタグ、すなわち、<form>と</form>で囲まれた部分が入力フォームである。レスポンス解析部102は、HTTPレスポンスとして受信したHTMLファイルにformタグが含まれているかどうかをチェックすることにより、そのHTTPレスポンスに入力フォームが含まれているかどうかを判定することができる。
また、ロギング対象の選択は、入力フォームが含まれているかどうかだけでなく、他の基準により行うこともできる。例えば、特定のURL、特定のHTTPリクエスト・パラメータが含まれている場合、HTTPレスポンスに特定の文字列が含まれている場合、特定のユーザにアドレスされている場合などに、ロギングするようにすることもできる。このような場合、レスポンス解析部102は、そのHTTPレスポンスが所定の条件に合致しているかどうかをチェックすることにより、ロギングの対象とするかどうかを判定する。
ID埋め込み部103は、入力フォームに、その入力フォームを識別する識別子(以下、「フォームID」という)を埋め込む。フォームIDは、入力フォームを追跡するため、すなわち、そのHTTPレスポンスにより送信された入力フォームと、後に、その入力フォームに対してユーザが入力したデータとを関連づけるために使用される。詳しくは、後述するコンテンツ合成部107と関連して説明する。
フォームIDは、一意かつ予測困難なものとすることが望ましく、例えば、固定文字列、乱数文字列、ユーザID、時刻、URL、コンテンツ名、パラメータ名の1つまたは複数の組み合わせからなる文字列、あるいはそれらをハッシュ化、あるいは暗号化して得た文字列、あるいはそれらを組み合わせたものにより生成することができる。フォームIDの値が予測容易な場合は、フォームIDを改竄することにより、他人のフォーム入力と混同させることができてしまうという問題があるからである。
フォームIDは、本発明の好適な実施形態においては、hiddenフィールドを使用して入力フォームに埋め込まれる。図4は、図3で説明されたHTMLファイルに、このIDを埋め込んだ後のHTMLファイルの内容を示す図である。ID埋め込み部103は、受信したHTMLファイル中のformタグ内に、<input type=“hidden“ name=”logger_form_id“ value=”xxxx“/>のようなhiddenフィールドを追加する(”xxxx“の部分がフォームIDである)。これにより、その入力フォームを追跡することができる。なお、入力フォームを追跡するための方法としては、hiddenフィールドを使用する他、セッションID、Cookie、IPアドレス、認証チケット、URL、時刻などの一つまたはこれらの組み合わせを使用することにより追跡することもできる。
フォームIDは、一つのフォームを追跡するためだけでなく、ユーザの一連のトランザクションを把握するためにも使用することができる。その場合、ID埋め込み部103は、生成されたフォームIDの順序を追跡できるように管理する。例えば、フォームIDにシーケンス番号を含め、そのシーケンス番号を、アプリケーション・サーバ300からHTTPレスポンスを受信する度に、インクリメントするようにしても良いが、本発明の好適な実施形態においては、フォームID内に予測容易な値が含まれないようにするために、フォームIDを、その生成された順に所定の記憶域に記憶するなど、生成された順序と関連づけてデータベースに記録していく。このようにすることで、ロギング・システム100上でフォームのチェーンを追跡することができる。また、フォームを持たないHTTPレスポンスも追跡したい場合には、ID埋め込み部103は、hiddenフィールドだけを持つフォームを新たに生成して、これにフォームIDを埋め込むようにすることができる。従来の各アプリケーション・サーバ上で動作するフレームワークのロギングでは、各フレームワーク内でのチェーンの追跡しか行えないが、本発明にかかるロギング・システム100は、複数アプリケーション・サーバ300や複数のフレームワークに跨るチェーンも追跡することを可能とする。
ロギング・データベース104は、入力フォームとフォームIDとを関連づけて記録する。本発明の好適な実施形態においては、フォームIDは、対応する入力フォームに埋め込まれている。また、ロギング・データベース104は、フォームIDに加えて、例えば、セッションID、クライアントIPアドレス、識別済みのユーザID、送信ボタンに対応したURLなどを、入力フォームと関連づけて記録するようにしてもよい。これらの情報も併せて同一性チェックのために使用することによって、例えば、フォームIDが偽造されたケースや、通信途中でフォームIDが盗まれて別のフォームの送信に使用されるようなケースにおいても、さらに厳しいチェックが可能となり、信頼性の高いシステムを提供することが可能となる。
レスポンス送信部105は、フォームIDが埋め込まれた入力フォームを、HTTPレスポンスとして、クライアント200に送信する。送信された入力フォームは、クライアント200の表示装置11に表示される。ユーザがフォームに必要なデータを入力して送信処理を行うことに応答して、入力データおよび入力フォームに埋め込まれていたフォームIDを含むHTTPリクエストがクライアント200からアプリケーション・サーバ300に送信される。リクエスト受信部106は、そのHTTPリクエストを受信する。リクエスト送信部108は、そのHTTPリクエストをそのまま(改変等せず)アプリケーション・サーバ300に送信する。
コンテンツ合成部107は、クライアント200から受信したHTTPリクエストを解析し、フォームID、すなわち、logger_form_idの値を取り出す。次に、コンテンツ合成部107は、ロギング・データベース104を検索し、このフォームIDと同一のフォームIDを含む入力フォームから取り出す。
同一のフォームIDがロギング・データベース105に存在しない場合、対応する入力フォームが存在しない不正なリクエストであると判断することができる。この場合、ロギング・システム100は、例えば、クライアント200への入力フォームの再送、エラー記録、オペレータへの通知などの処理を不正リクエスト処理部(図示せず)に行わせることができる。また、ロギング・データベース104が入力フォームと関連づけて記録しておいた、セッションID、クライアントIPアドレス、識別済みのユーザID、送信ボタンに対応したURLなどが、クライアント200から受信したリクエストと一致しない場合も、そのリクエストが不正なリクエストであると判断して、不正リクエストに対する所定の処理を行うことができる。
コンテンツ合成部107は、さらに、クライアント200から受信したHTTPリクエストから、ユーザ入力データを取り出し、この入力データを、ロギング・データベース104から検索された入力フォームの所定の位置に埋め込むように、HTMLを書き換える。具体的には、入力データは、入力フォームのinputタグの初期値として埋め込まれる。また、元のHTMLファイルにボタンやバナーなどの画像や他の静的コンテンツが含まれる場合、コンテンツ合成部107は、それらのコンテンツを埋め込んだイメージを作成する。ロギング・システム100がそれらのコンテンツをキャッシュすることにより補ってもよいし、アプリケーション・サーバ300にHTTPリクエストを送信して、それらのコンテンツを取得することにより補ってもよい。これにより、入力データが入力済みのフォームが作成される。
コンテンツ合成部107は、作成したフォームをロギング・データベース104に記録する。このように、アプリケーション・サーバ300から受信した入力フォームとクライアント200から受信した入力データとを合成することにより作成されたデータ入力済みのフォームをロギング・データベース104に記録しておくことにより、見やすい操作ログを残すことができる。ロギング・データベース104には、データ入力済みのフォームの他、IPアドレスや認証済みユーザID、日時などのクライアント情報を追加的に記録してもよい。また、記録するフォーム等について電子署名サーバなどで署名をおこない、その署名値も併せて記録することで証拠能力を高めることもできる。ロギング・データベース104に記録する形式は、HTML形式の他、HTMLをレンダリングすることにより作成したPDF形式などにしてもよい。また、視覚的なログではないが、Unix(登録商標)またはLinux(登録商標)で標準的ロギング・システムであるsyslogなどの共通ログ形式の通常のログに、データ入力済みのフォームの保存場所(RDBに保存する場合はキー値)や上述のクライアント情報、時刻、リクエストが正当か不正であったかなどの結果情報などの各種情報の出力も同時に行ってもよい。なお、ロギング・データベース104への格納方法は、単にファイル・システムに書き出すようにしてもよいし、例えば、フォーム送信時刻やユーザIDなどをキーとして検索可能なように、リレーショナル・データベースなどに保存するなど、種々の方法が考えられることは当業者であれば明らかであろう。
図5は、本発明の実施形態におけるロギング・システム100がアプリケーション・サーバ300からクライアント200に送信されたHTTPレスポンスを受信した場合のロギング・システム100内の処理を表すフローチャートである。処理は、ステップ510で、クライアント200からのHTTPリクエストに応答して、アプリケーション・サーバ300がクライアント200に対して送信したHTTPレスポンスをレスポンス受信部101が受信することにより開始する。
レスポンス解析部102は、受信したHTTPレスポンスがロギングの対象であるかどうかを判定する(ステップ520)。例えば、ユーザ入力を促す入力フォームが含まれるものをロギングする場合、レスポンス解析部102は、HTTPレスポンスとして送信されたHTMLファイルを解析し、formタグが含まれているかどうかをチェックする。入力フォームが含まれていない場合、すなわち、ロギングの対象でない場合(ステップ520でNo)、処理は、ステップ550に進み、受信したHTTPレスポンスをそのままクライアント200に送信することにより終了する。一方、入力フォームが含まれており、ロギングの対象である場合(ステップ520でYes)、処理は、ステップ530に進む。
ステップ530において、ID埋め込み部103は、フォームIDを生成し、そのフォームIDを入力フォームに埋め込む。フォームIDが埋め込まれたフォームは、ロギング・データベース104に記録され(ステップ540)、レスポンス送信部105により、クライアント200に送信される(ステップ550)。
図6は、本発明の実施形態におけるロギング・システム100がクライアント200からアプリケーション・サーバ300に送信したHTTPリクエストを受信した場合のロギング・システム100内の処理を表すフローチャートである。処理は、ステップ610で、アプリケーション・サーバ300からのHTTPレスポンスに応答して、クライアント200がアプリケーション・サーバ300に対して送信したHTTPリクエストをリクエスト受信部107が受信することにより開始する。受信したHTTPリクエストには、ユーザが入力したフォームへの入力データと、HTTPレスポンスに含まれていたフォームIDが含まれている。
コンテンツ合成部107は、受信したHTTPリクエストから、フォームIDを取り出し、このフォームIDと同一のフォームIDを含むフォームをロギング・データベース104から取り出す(ステップ620)。同一のフォームIDがロギング・データベース104に見つからない場合、IDが改竄された可能性がある。そこで、ロギング・システム100は、そのHTTPリクエストを不正なものとみなし、所定の処理を行うようにすることもできる。
コンテンツ合成部107は、受信したHTTPリクエストから、ユーザにより入力されたデータを取り出し、そのデータを、そのHTTPリクエストから取り出したフォームIDを使用してロギング・データベース104から取り出した入力フォームの所定の位置に埋め込むようにHTMLファイルを書き換える(ステップ630)。そして、入力データが組み込まれたフォームをロギング・データベース104に記録する(ステップ640)。リクエスト送信部108は、クライアント200から受信したHTTPリクエストをそのまま(改変等せず)アプリケーション・サーバ300に送信する。
以上、本発明によれば、ユーザにより入力されたデータを組み込んだ状態のフォーム・イメージをロギング・データベース104に記録することができ、視覚的でわかりやすい操作ログを提供することができる。また、クライアント200とアプリケーション・サーバの間に配置されるロギング・システム100を提供するため、アプリケーション・フレームワークに依存することもなく、また、複数サーバおよび複数アプリケーションが存在する環境においても統一的にロギングすることが可能となる。
本発明は、ハードウェア、ソフトウェア、またはハードウェア及びソフトウェアの組み合わせとして実現可能である。ハードウェアとソフトウェアの組み合わせによる実行において、所定のプログラムを有するデータ処理システムにおける実行が典型的な例として挙げられる。かかる場合、該所定プログラムが該データ処理システムにロードされ実行されることにより、該プログラムは、データ処理システムを制御し、本発明にかかる処理を実行させる。このプログラムは、任意の言語・コード・表記によって表現可能な命令群から構成される。そのような命令群は、システムが特定の機能を直接、または1.他の言語・コード・表記への変換、2.他の媒体への複製、のいずれか一方もしくは双方が行われた後に、実行することを可能にするものである。
もちろん、本発明は、そのようなプログラム自体のみならず、プログラムを記録した媒体もその範囲に含むものである。本発明の機能を実行するためのプログラムは、フレキシブルディスク、MO、CD−ROM、DVD、ハードディスク装置、ROM、MRAM、RAM等の任意のコンピュータ読み取り可能な記録媒体に格納することができる。かかるプログラムは、記録媒体への格納のために、通信回線で接続する他のデータ処理システムからダウンロードしたり、他の記録媒体から複製したりすることができる。また、かかるプログラムは、圧縮し、または複数に分割して、単一または複数の記録媒体に格納することもできる。また、様々な形態で、本発明を実施するプログラム製品を提供することも勿論可能であることにも留意されたい。
上記の実施の形態に、種々の変更または改良を加えることが可能であることが当業者に明らかである。従って、そのような変更または改良を加えた形態も当然に本発明の技術的範囲に含まれる。
以上、本発明の実施の形態を用いて説明したが、本発明の技術範囲は上記実施の形態に記載の範囲には限定されない。上記の実施の形態に、種々の変更または改良を加えることが可能であることが当業者に明らかである。従って、そのような変更または改良を加えた形態も当然に本発明の技術的範囲に含まれる。
本発明の実施形態おけるロギング・システムの外観の一例を示した図である。 本発明の実施形態におけるロギング・システム100を機能ブロックに分類して示した図である。 入力フォームとそれに対応するHTMLファイルの具体例を示した図である。 本発明の実施形態におけるHTTPレスポンスを識別するIDを埋め込んだHTMLファイルの内容を示した図である。 本発明の実施形態におけるアプリケーション・サーバからHTTPレスポンスを受信した場合のロギング・システム100内の処理を表すフローチャートである。 本発明の実施形態におけるクライアント200からHTTPリクエストを受信した場合のロギング・システム100内の処理を表すフローチャートである。 本発明の実施の形態におけるロギング・システム100が稼働するコンピュータ、クライアント・コンピュータ200、アプリケーション・サーバ300を実現するために好適な情報処理装置700のハードウェア構成を例示する図である。

Claims (17)

  1. クライアントのリクエストに応答してサーバが送信したレスポンスに対する操作ログを記録するロギング・システムであって、前記ロギング・システムは1つ又は複数のクライアント及び1つ又は複数のサーバに接続されており、
    前記ロギング・システムは、
    前記サーバから前記クライアントに送信された前記レスポンスを受信するレスポンス受信部であって、前記レスポンスは前記クライアントにデータ入力を指示するコンテンツを含む、前記レスポンス受信部と、
    前記受信したレスポンスを解析し、操作ログを記録するか否かを判断するレスポンス解析部と、
    前記コンテンツを識別するための識別子を生成し、当該識別子を前記コンテンツに埋め込む識別子埋め込み部と、
    前記識別子を埋め込んだ前記レスポンスを前記クライアントに送信するレスポンス送信部と、
    前記コンテンツと前記識別子とを関連づけて記録するロギング・データベースと、
    前記レスポンスに対して前記クライアントから前記サーバに送信されたリクエストを受信するリクエスト受信部であって、前記リクエストは前記コンテンツへの入力データと前記識別子とを含む、前記リクエスト受信部と、
    前記リクエストから取り出した前記入力データを、前記リクエストから取り出した前記識別子を使用して前記ロギング・データベースから検索されたコンテンツと合成して前記ロギング・データベースに記録するコンテンツ合成部と
    を備えてい、前記ロギング・システム。
  2. 前記レスポンス解析部は、前記レスポンスが入力フォームを含むこと、特定のURLであること、特定のHTTPリクエスト・パラメータが含まれていること、HTTPレスポンスに特定の文字列が含まれていること、又は、特定のユーザにアドレスされていること、を条件に、操作ログを記録することを決定する、請求項に記載のロギング・システム。
  3. 前記コンテンツはHTMLで作成された入力フォームであり、前記識別子が当該入力フォームのhiddenフィールドに埋め込まれる、請求項1又は2に記載のロギング・システム。
  4. 前記識別子は、固定文字列、乱数文字列、ユーザID、時刻、URL、コンテンツ名、パラメータ名のうちの1つまたは複数の組み合わせからなる文字列、またはそれらをハッシュ化もしくは暗号化することにより得られた文字列、あるいはそれらを組み合わせたものにより生成される、請求項1〜のいずれか一項に記載のロギング・システム。
  5. 前記リクエストから取り出した前記識別子が前記ロギング・データベースに見つからなかった場合、当該リクエストは不正なリクエストであると判断して所定の処理を行う不正リクエスト処理部をさらに備えている、請求項1〜4のいずれか一項に記載のロギング・システム。
  6. 前記ロギング・データベースは、前記コンテンツと関連づけて、セッションID、クライアントIPアドレス、識別済みのユーザID、送信ボタンに対応したURLのうちの1つまたは複数をさらに記録し、これらの情報が前記クライアントから受信した前記リクエストのものと一致しない場合、当該リクエストは不正なリクエストであると判断して所定の処理を行う不正リクエスト処理部をさらに備えている、請求項1〜のいずれか一項に記載のロギング・システム。
  7. 前記不正なリクエストに対する処理は、前記コンテンツを前記クライアントに再送すること、クライアント情報を記録すること、エラーとして記録すること、オペレータに通知することの1つまたは複数の処理を含む、請求項5又は6に記載のロギング・システム。
  8. 使用されたコンテンツの順序を追跡できるようにするため、前記ロギング・データベースは、前記識別子を、その生成された順序と関連づけて記録する、請求項1〜のいずれか一項に記載のロギング・システム。
  9. 前記コンテンツはHTMLで作成された入力フォームであり、前記コンテンツ合成部は、前記入力データを、当該入力フォームのinputタグの初期値として埋め込むことにより合成する、請求項1〜のいずれか一項に記載のロギング・システム。
  10. 前記コンテンツ合成部は、前記入力データに加え、クライアント情報も併せて記録する、請求項1〜のいずれか一項に記載のロギング・システム。
  11. 前記コンテンツ合成部は、前記入力データに加え、前記コンテンツに対する署名値も併せて記録する、請求項1〜10のいずれか一項に記載のロギング・システム。
  12. 前記クライアントから受信した前記リクエストをそのまま前記サーバに送信するリクエスト送信部をさらに備えている、請求項1〜11のいずれか一項に記載のロギング・システム。
  13. クライアントのリクエストに応答してサーバが送信したレスポンスに対する操作ログを記録する方法であって、1つ又は複数のクライアント及び1つ又は複数のサーバに接続されうるロギング・システムが、
    前記サーバから前記クライアントに送信された前記レスポンスを受信するステップであって、前記レスポンスは前記クライアントにデータ入力を指示するコンテンツを含む、前記受信するステップと、
    前記受信したレスポンスを解析し、操作ログを記録するか否かを判断するステップと、
    前記コンテンツを識別するための識別子を生成し、当該識別子を前記コンテンツに埋め込むステップと、
    前記識別子を埋め込んだ前記レスポンスを前記クライアントに送信するステップと、
    前記コンテンツと前記識別子とを関連づけてロギング・データベースに記録するステップと、
    前記レスポンスに対して前記クライアントから前記サーバに送信されたリクエストを受信するステップであって、前記リクエストは前記コンテンツへの入力データと前記識別子とを含む、前記受信するステップと、
    前記リクエストから取り出した前記入力データを、前記リクエストから取りだした前記識別子を使用して前記ロギング・データベースから検索されたコンテンツと合成して前記ロギング・データベースに記録するステップと
    実行することを含む、前記方法。
  14. 前記操作ログを記録するか否かを判断するステップが、前記レスポンスが入力フォームを含むことを条件に、操作ログを記録することを決定するステップを含む、請求項13に記載の方法。
  15. 前記コンテンツはHTMLで作成された入力フォームであり、前記識別子が当該入力フォームのhiddenフィールドに埋め込まれる、請求項13又は14に記載の方法。
  16. 前記ロギング・システムが、
    前記リクエストから取り出した前記識別子が前記ロギング・データベースに見つからなかった場合、当該リクエストは不正なリクエストであると判断して所定の処理を行うステップ、又は、
    前記ロギング・データベースは、前記コンテンツと関連づけて、セッションID、クライアントIPアドレス、識別済みのユーザID、送信ボタンに対応したURLのうちの1つまたは複数をさらに記録し、これらの情報が前記クライアントから受信した前記リクエストのものと一致しない場合、当該リクエストは不正なリクエストであると判断して所定の処理を行うステップ
    を実行することをさらに含む、請求項13〜15のいずれか一項に記載の方法。
  17. クライアントのリクエストに応答してサーバが送信したレスポンスに対する操作ログを記録するコンピュータ・プログラムであって、1つ又は複数のクライアント及び1つ又は複数のサーバに接続されうるロギング・システムに、請求項13〜16のいずれか一項に記載の方法の各ステップを実行させる前記コンピュータ・プログラム。
JP2007217106A 2007-08-23 2007-08-23 操作ログを記録するためのシステム、方法およびコンピュータ・プログラム Active JP5063258B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007217106A JP5063258B2 (ja) 2007-08-23 2007-08-23 操作ログを記録するためのシステム、方法およびコンピュータ・プログラム
US12/121,835 US8554740B2 (en) 2007-08-23 2008-05-16 Recording a log of operations

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007217106A JP5063258B2 (ja) 2007-08-23 2007-08-23 操作ログを記録するためのシステム、方法およびコンピュータ・プログラム

Publications (2)

Publication Number Publication Date
JP2009053740A JP2009053740A (ja) 2009-03-12
JP5063258B2 true JP5063258B2 (ja) 2012-10-31

Family

ID=40383146

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007217106A Active JP5063258B2 (ja) 2007-08-23 2007-08-23 操作ログを記録するためのシステム、方法およびコンピュータ・プログラム

Country Status (2)

Country Link
US (1) US8554740B2 (ja)
JP (1) JP5063258B2 (ja)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5063258B2 (ja) * 2007-08-23 2012-10-31 インターナショナル・ビジネス・マシーンズ・コーポレーション 操作ログを記録するためのシステム、方法およびコンピュータ・プログラム
JP5381649B2 (ja) * 2009-11-26 2014-01-08 富士通株式会社 検証対象抽出プログラム、検証対象抽出装置、および検証対象抽出方法
US10372899B2 (en) * 2010-07-22 2019-08-06 International Business Machines Corporation Method and apparatus for context-aware output escaping using dynamic content marking
US10375107B2 (en) * 2010-07-22 2019-08-06 International Business Machines Corporation Method and apparatus for dynamic content marking to facilitate context-aware output escaping
US20120036422A1 (en) * 2010-08-03 2012-02-09 Xerox Corporation System and method for rendering forms based on an identification number
JP5487299B2 (ja) * 2010-09-17 2014-05-07 株式会社東芝 操作情報生成装置および操作情報生成方法
JP2012088849A (ja) * 2010-10-18 2012-05-10 Ricoh Co Ltd 画像形成装置、ログ管理方法、及びログ管理プログラム
JP5350410B2 (ja) * 2011-01-14 2013-11-27 日本電信電話株式会社 ログ管理システム、ログ管理方法、ログ管理装置及びログ管理プログラム
US10366085B2 (en) 2011-05-19 2019-07-30 Lead Intelligence, Inc. System, method, and computer program for audit scoring
US9495659B2 (en) * 2011-05-19 2016-11-15 Ross Shanken Apparatus, method, and a computer program for a form identification number
US9015785B2 (en) * 2011-11-29 2015-04-21 Sony Corporation Terminal apparatus, server apparatus, information processing method, program, and linking application supply system
JP5764255B2 (ja) * 2012-03-02 2015-08-19 株式会社日立製作所 ユーザ操作検出システムおよびユーザ操作検出方法
CN103034579B (zh) * 2012-11-29 2015-12-09 北京神州绿盟信息安全科技股份有限公司 图形运维操作有效性的自动分析处理方法和系统
PL2739010T3 (pl) * 2012-11-30 2015-10-30 Politechnika Poznanska Sposób zwiększania niezawodności rozproszonych systemów informatycznych opartych o architekturę zorientowaną na usługi
CN103927243A (zh) * 2013-01-15 2014-07-16 株式会社日立制作所 图形用户界面操作的监控方法和监控装置
JP5728138B1 (ja) * 2014-04-18 2015-06-03 楽天株式会社 メール送信装置、メール送信方法、記録媒体およびプログラム
EP3262531A1 (en) * 2015-02-24 2018-01-03 Entit Software LLC Element identifier generation
US10581989B2 (en) * 2015-07-30 2020-03-03 Nasdaq, Inc. Application logging framework
US10819594B2 (en) 2015-11-02 2020-10-27 Servicenow, Inc. System and method for generating a graphical display region indicative of conditions of a computing infrastructure
US11205102B1 (en) * 2017-04-25 2021-12-21 EMC IP Holding Company LLC Tamper proof logging for automated processes
US10824642B2 (en) 2017-08-10 2020-11-03 Servicenow, Inc. Data synchronization architecture
CN109167797B (zh) * 2018-10-12 2022-03-01 北京百度网讯科技有限公司 网络攻击分析方法和装置
US11263201B2 (en) 2019-04-12 2022-03-01 Servicenow, Inc. Interface for supporting integration with cloud-based service providers
US10997002B2 (en) 2019-05-03 2021-05-04 Servicenow, Inc. Quick actions
US10963314B2 (en) 2019-07-31 2021-03-30 Servicenow, Inc. Discovery and mapping of a platform-as-a-service environment
CN112346938B (zh) * 2019-08-08 2023-05-26 腾讯科技(深圳)有限公司 操作审计方法、装置及服务器和计算机可读存储介质
CN112256648A (zh) * 2020-10-26 2021-01-22 广州九尾信息科技有限公司 一种基于Nginx日志行为采集和跟踪的方法及装置
CN113806301A (zh) * 2021-09-29 2021-12-17 中国平安人寿保险股份有限公司 数据同步方法、装置、服务器及存储介质

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7505605B2 (en) * 1996-04-25 2009-03-17 Digimarc Corporation Portable devices and methods employing digital watermarking
JPH10222450A (ja) * 1997-02-05 1998-08-21 Matsushita Joho Syst Kk 検索情報記録装置
US7233978B2 (en) * 1998-07-08 2007-06-19 Econnectix, Llc Method and apparatus for managing location information in a network separate from the data to which the location information pertains
JP3083805B2 (ja) * 1998-08-28 2000-09-04 インターナショナル・ビジネス・マシーンズ・コーポレ−ション ブラウザ操作自動実行システムおよびその方法
US20050182828A1 (en) * 1999-04-21 2005-08-18 Interactual Technologies, Inc. Platform specific execution
JP4136233B2 (ja) * 1999-11-30 2008-08-20 富士通株式会社 画面制御装置および記録媒体
US7865414B2 (en) * 2000-03-01 2011-01-04 Passgate Corporation Method, system and computer readable medium for web site account and e-commerce management from a central location
JP4767389B2 (ja) * 2000-05-10 2011-09-07 株式会社富士通アドバンストエンジニアリング ロギング装置および記録媒体
JP2001350652A (ja) * 2000-06-09 2001-12-21 Nippon Telegr & Teleph Corp <Ntt> 動作ログ蓄積装置および動作ログ蓄積管理方法
US7305427B2 (en) * 2000-08-07 2007-12-04 Evan John Kaye Shipping address automation method
US7010806B2 (en) * 2001-05-18 2006-03-07 Sun Microsystems, Inc. Dynamic downloading of keyboard keycode data to a networked client
US7246086B2 (en) * 2001-10-26 2007-07-17 Matsushita Electric Industrial Co., Ltd. Product information management device
JP4050497B2 (ja) * 2001-11-06 2008-02-20 インフォサイエンス株式会社 ログ情報管理装置及びログ情報管理プログラム
JP2005078329A (ja) * 2003-08-29 2005-03-24 Toshiba Corp アクセス情報管理サーバ、アクセス情報管理方法およびプログラム
US7457872B2 (en) * 2003-10-15 2008-11-25 Microsoft Corporation On-line service/application monitoring and reporting system
US20050198300A1 (en) * 2003-12-29 2005-09-08 Li Gong Data logging framework
JP4610240B2 (ja) * 2004-06-24 2011-01-12 富士通株式会社 分析プログラム、分析方法及び分析装置
US7639387B2 (en) * 2005-08-23 2009-12-29 Ricoh Co., Ltd. Authoring tools using a mixed media environment
US7660798B1 (en) * 2004-10-04 2010-02-09 Adobe Systems Incorporated System and method for providing document security, access control and automatic identification of recipients
JP2006190033A (ja) * 2005-01-05 2006-07-20 Hitachi Ltd 情報処理システム及び通信再生処理方法
JP2007065718A (ja) * 2005-08-29 2007-03-15 Hitachi Software Eng Co Ltd プログラム動作過程追跡支援表示方法及びシステム
JP4569962B2 (ja) * 2005-09-20 2010-10-27 株式会社セラン アクセスログ記録サーバ、アクセスログ記録システム及びアクセスログ記録方法
EP2076874A4 (en) * 2006-05-13 2011-03-09 Sap Ag DERIVED CONSISTENT SET OF INTERFACES DERIVED FROM A BUSINESS OBJECT MODEL
US9223784B2 (en) * 2007-03-28 2015-12-29 Ricoh, Co., Ltd. Method and apparatus for archiving media using a log
JP5063258B2 (ja) * 2007-08-23 2012-10-31 インターナショナル・ビジネス・マシーンズ・コーポレーション 操作ログを記録するためのシステム、方法およびコンピュータ・プログラム
US8015232B2 (en) * 2007-10-11 2011-09-06 Roaming Keyboards Llc Thin terminal computer architecture utilizing roaming keyboard files

Also Published As

Publication number Publication date
US20090055443A1 (en) 2009-02-26
US8554740B2 (en) 2013-10-08
JP2009053740A (ja) 2009-03-12

Similar Documents

Publication Publication Date Title
JP5063258B2 (ja) 操作ログを記録するためのシステム、方法およびコンピュータ・プログラム
EP3097509B1 (en) Intercepting and supervising calls to transformed operations and objects
US7343559B1 (en) Computer-readable recorded medium on which image file is recorded, device for producing the recorded medium, medium on which image file creating program is recorded, device for transmitting image file, device for processing image file, and medium on which image file processing program is recorded
US11886619B2 (en) Apparatus and method for securing web application server source code
CN105868635B (zh) 用于应对恶意软件的方法和装置
CN103843004B (zh) 装置定制白名单
US9501650B2 (en) Application security testing
US8285778B2 (en) Protecting web application data
JP2008294596A (ja) 表データの真正性保証システム
US7996822B2 (en) User/process runtime system trace
CN105631355A (zh) 一种数据处理方法和装置
JP2008283686A (ja) ドライブバイ・ファーミングに対するリファラーチェックを介したクライアント側の保護
CN107896219B (zh) 一种网站脆弱性的检测方法、系统及相关装置
Casey et al. Malware forensics field guide for Linux systems: digital forensics field guides
US20150207705A1 (en) Method for file activity monitoring
CN105100065B (zh) 基于云的webshell攻击检测方法、装置及网关
EP1696339A2 (en) System and method for testing data format using targeted variant input
JP2004178263A (ja) Webサーバ、Javaサーブレットの機能を有するWebサーバ、およびコンピュータプログラム
CN103095663B (zh) 一种非登录用户间的信息交互方法和装置
JP2008015733A (ja) ログ管理計算機
Iqbal et al. Forensic investigation of Google Meet for memory and browser artifacts
JP5341695B2 (ja) 情報処理システム、情報処理方法、およびプログラム
CN106209748A (zh) 互联网接口的防护方法及装置
JP2008097301A (ja) ファイル管理サーバ及びそのプログラムとファイル管理方法
US20070130467A1 (en) Request linked digital watermarking

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100521

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111011

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111228

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20111228

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20111228

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20111228

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: 20120719

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20120719

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20120719

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: 20120807

R150 Certificate of patent or registration of utility model

Ref document number: 5063258

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20150817

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250