JP2009244926A - Information processing apparatus, information processing method, and information processing program - Google Patents

Information processing apparatus, information processing method, and information processing program Download PDF

Info

Publication number
JP2009244926A
JP2009244926A JP2008087191A JP2008087191A JP2009244926A JP 2009244926 A JP2009244926 A JP 2009244926A JP 2008087191 A JP2008087191 A JP 2008087191A JP 2008087191 A JP2008087191 A JP 2008087191A JP 2009244926 A JP2009244926 A JP 2009244926A
Authority
JP
Japan
Prior art keywords
information
check
input
input data
information processing
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.)
Granted
Application number
JP2008087191A
Other languages
Japanese (ja)
Other versions
JP5003557B2 (en
Inventor
Arata Hisanaga
新 久永
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 JP2008087191A priority Critical patent/JP5003557B2/en
Publication of JP2009244926A publication Critical patent/JP2009244926A/en
Application granted granted Critical
Publication of JP5003557B2 publication Critical patent/JP5003557B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)
  • User Interface Of Digital Computer (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide an information processing apparatus or the like for safely and quickly checking input items while reducing the load on a developer. <P>SOLUTION: This information processing apparatus includes: a JSP file reading part 211 for reading check information described as comments for each input item in a JSP file according to a prescribed format; a comparison processing part 223 for comparing input data with the check information read by the JSP file reading part 211 for each input item; a determination processing part 224 for determining whether or not the input data are proper data on design on the basis of the comparison result of the comparison processing part 223; and a check result corresponding part 225 for executing corresponding processing on the basis of the determination result of the determination processing part 224. <P>COPYRIGHT: (C)2010,JPO&INPIT

Description

本発明は、入力されたデータがシステムの設計上適正なデータであるかどうかを判定する情報処理装置等に関する。   The present invention relates to an information processing apparatus or the like that determines whether or not input data is appropriate data for system design.

クライアントから入力されたデータをチェックする技術として、以下に示す技術が知られている。   The following techniques are known as techniques for checking data input from a client.

第1の技術として、クライアント側からの入力情報からデータを取り出し、チェックして格納するという一連の処理を、一元化、自動化することによって、効率良くWebシステムを開発することのできる技術が知られている(例えば、特許文献1参照)。この技術は、入力データに入力キーワードチェックパターン情報をHTML形式のデータに予め組み込み、クライアント側から送られてきた入力情報をサーバ側にて処理してシステムを構築する際に、システムの構築に必要なデータ項目に基づいて、前記入力情報からのデータ取り出し処理と、取り出したデータをチェックする処理と、チェックしたデータを所定の領域に格納する処理とを行うものである。   As a first technique, a technique is known that can efficiently develop a Web system by unifying and automating a series of processes of extracting, checking, and storing data from input information from the client side. (For example, refer to Patent Document 1). This technology is necessary for system construction when input keyword check pattern information is embedded in HTML data in advance and input information sent from the client side is processed on the server side to construct a system. On the basis of various data items, a process for extracting data from the input information, a process for checking the extracted data, and a process for storing the checked data in a predetermined area are performed.

第2の技術として、プログラミングの知識のないユーザであっても、業務仕様の枠組みの中から、誤入力/誤登録を未然に防止可能な入力支援機能を有する複雑なウェブアプリケーションを容易に生成可能にし、ウェブアプリケーションの開発作業、業務仕様の変更に起因する変更保守作業を格段に軽減でき、開発期間を格段に短縮することができる技術が知られている(例えば、特許文献2参照)。この技術は、入出力テーブル内の複数のデータ項目の定義情報と前記各データ項目の属性情報に基づいて、コード生成部が、「前記各データ項目に対応するデータを前記各データ項目の属性に応じた入力形式で入力処理する項目表示プログラム」、「前記各データ項目に対応する入力データに対して前記各データ項目の属性に応じたチェック処理を行うデータチェックプログラム」、「前記各データ項目に対応するデータを前記各データ項目の属性に応じた出力形式で出力処理する入力データ整形表示プログラム」を生成する構成を特徴とするものである。   As a second technology, even users without programming knowledge can easily generate complex web applications with input support functions that can prevent erroneous input / incorrect registration from the framework of business specifications. In addition, there is known a technique that can significantly reduce development work of web applications and change maintenance work resulting from changes in business specifications, and can significantly shorten the development period (see, for example, Patent Document 2). In this technique, based on the definition information of a plurality of data items in the input / output table and the attribute information of each data item, the code generation unit can specify that “the data corresponding to each data item is the attribute of each data item. "Item display program that performs input processing in accordance with input format", "Data check program that performs check processing according to attribute of each data item for input data corresponding to each data item", "In each data item The present invention is characterized in that an “input data shaping display program for outputting corresponding data in an output format corresponding to the attribute of each data item” is generated.

第3の技術として、バッファオーバーフローに対して、根本的な対処であるプログラムソースの修正や修正パッチの適用を迅速に行えるようにする技術が知られている(例えば、特許文献3参照)。この技術は、バッファオーバーフロー攻撃の発生を検知すると、プログラム開発者に提供する分析情報として、攻撃の対象となったバッファの存在する場所の情報と、そのバッファを確保した関数の情報とを抽出するとともに、そのバッファ確保からバッファオーバーフロー攻撃までの関数の呼び出し履歴の情報を抽出できる場合には、その情報を抽出する。この分析情報を受けて、プログラム開発者がプログラムを修正し対処情報を作成するので、既知分析情報記憶手段に分析情報に対応付ける形で対処情報を記憶しておき、抽出した分析情報が既知分析情報記憶手段が登録されている場合には、その分析情報に対応付けられる対処情報に基づいてバッファオーバーフロー攻撃に対する対処処理を実行するものである。   As a third technique, there is known a technique that can quickly correct a program source and apply a correction patch, which is a fundamental countermeasure against a buffer overflow (see, for example, Patent Document 3). When this technology detects the occurrence of a buffer overflow attack, it extracts information about the location of the attacked buffer and information about the function that secured the buffer as analysis information provided to the program developer. At the same time, if the function call history information from the buffer reservation to the buffer overflow attack can be extracted, the information is extracted. In response to this analysis information, the program developer modifies the program and creates countermeasure information. Therefore, the countermeasure information is stored in the known analysis information storage means in association with the analysis information, and the extracted analysis information is known analysis information. When the storage means is registered, the countermeasure processing for the buffer overflow attack is executed based on the countermeasure information associated with the analysis information.

第4の技術として、プログラマに一切負担をかけずに、検出漏れなく、少ない誤検出で、バッファオーバーフロー脆弱性を検出する技術が知られている(例えば、特許文献4参照)。この技術は、解析対象となるプログラムから、確保された領域を示す領域式と、前記領域式が示す領域においてアクセスする位置を指定する指数式とを含む領域アクセス式を検出し、前記領域式が示す領域のサイズ式を検出し、前記領域アクセス式を含む命令を実行すると前記領域式が示す領域外へのアクセスとなるバッファオーバーフローが発生するバッファオーバーフロー条件を前記指数式と前記サイズ式とを用いて算出し、前記ソースプログラムの上流側に配置された命令から前記領域アクセス式を含む命令へ至るまでの命令の実行経路を特定し、前記実行経路上に配置された代入命令に基づき前記バッファオーバーフロー条件を前記実行経路の上流へ向けて遡及させ、前記バッファオーバーフロー条件の上流での表現を求めるものである。
特許第3624248号公報 特開2005−55951号公報 特開2006−53760号公報 特開2006−31363号公報
As a fourth technique, there is known a technique for detecting a buffer overflow vulnerability without imposing any burden on the programmer, with no detection omission, and with a small number of false detections (see, for example, Patent Document 4). This technique detects an area access expression including an area expression indicating a reserved area and an exponent expression specifying a position to be accessed in the area indicated by the area expression from a program to be analyzed. When the size formula of the indicated area is detected and an instruction including the area access formula is executed, a buffer overflow that causes an access outside the area indicated by the area formula occurs. The buffer overflow is determined based on an assignment instruction arranged on the execution path from the instruction arranged upstream of the source program to the instruction including the area access expression. The condition is retroactive to the upstream of the execution path, and the upstream expression of the buffer overflow condition is obtained. That.
Japanese Patent No. 3624248 JP 2005-55951 A JP 2006-53760 A JP 2006-31363 A

しかしながら、第1の技術は、クライアント側で入力されたデータをチェックするために、入力データに入力キーワードチェックパターン情報を付加して送信するため、悪意のあるクライアントの場合、改竄が行われてしまうというリスクがあり、セキュリティ上の課題を有する。   However, in the first technique, in order to check the data input on the client side, the input keyword check pattern information is added to the input data and transmitted, so that in the case of a malicious client, falsification is performed. And has security issues.

また、第2の技術は、プログラムの生成に関しては、開発作業、業務仕様の変更に起因する変更保守作業を格段に軽減できるが、入力項目と属性ごとにチェックプログラムを生成しているためチェックプログラムの容量が大きくなってしまい、プログラム生成後にプログラム開発者がレビュー等を行う場合には作業に手間が掛かってしまうため、作業の軽減が不十分であるという課題を有する。   In addition, the second technology can greatly reduce development work and change maintenance work caused by changes in business specifications with respect to program generation. However, a check program is generated because a check program is generated for each input item and attribute. When the program developer performs a review or the like after the program is generated, the work is troublesome, so that the work is not sufficiently reduced.

さらに、第3の技術は、バッファオーバーフローが発生した後に分析結果をプログラム開発者に提供し、プログラム開発者はその分析結果を踏まえてプログラムの修正を行うため、バッファオーバーフローの対応が後手に回ってしまい、被害が拡大してしまう可能性があるという課題を有する。   Furthermore, since the third technique provides the analysis result to the program developer after the buffer overflow occurs, and the program developer corrects the program based on the analysis result, the response to the buffer overflow is delayed. Therefore, there is a problem that damage may be increased.

さらにまた、第4の技術はプログラムの解析が必要となるため、プログラムを解析するためのプログラムの開発に時間を要してしまい、作業工数が増えてしまうという課題を有する。   Furthermore, since the fourth technique needs to analyze a program, it takes time to develop a program for analyzing the program, resulting in an increase in work man-hours.

そこで、本発明は前記課題を解決するためになされたものであり、開発者の負担を軽減しつつ、入力項目のチェックを安全で迅速に行うことができる情報処理装置、情報処理方法、及び、情報処理プログラムを提供することを目的とする。   Therefore, the present invention has been made to solve the above-described problem, and an information processing apparatus, an information processing method, and an information processing apparatus capable of safely and quickly checking input items while reducing a developer's burden. An object is to provide an information processing program.

(1.動的文書生成ファイル内にチェック情報をコメントとして記述)
本願に開示する情報処理装置は、動的に文書を生成するため情報が記述された動的文書生成ファイルから、所定の形式に従って入力項目ごとにコメントとして記述されたチェック情報を読み込む読込手段と、入力された入力データと前記読込手段が読み込んだチェック情報とを前記入力項目ごとに比較する比較手段と、前記比較手段が比較した結果に基づいて、前記入力データが設計上適正なデータであるかどうかを判定する判定手段と、前記判定手段が判定した結果に基づいて、対応する処理を実行する対応処理実行手段とを備えるものである。ここで、動的文書生成ファイルとは、例えばJSP(Java Server Pages:なお「Java」は登録商標である。)ファイルをいう。
(1. Describe the check information as a comment in the dynamic document generation file)
The information processing apparatus disclosed in the present application includes a reading unit that reads check information described as a comment for each input item according to a predetermined format from a dynamic document generation file in which information is dynamically generated to generate a document; Comparing means for comparing the input data inputted and the check information read by the reading means for each input item, and whether the input data is design-appropriate data based on the result of comparison by the comparing means A determination means for determining whether or not and a corresponding process execution means for executing a corresponding process based on a result determined by the determination means. Here, the dynamic document generation file refers to, for example, a JSP (Java Server Pages: “Java” is a registered trademark) file.

このように、本願に開示する情報処理装置においては、動的文書生成ファイルに入力項目ごとにコメントとしてチェック情報が記述されており、そのチェック情報に基づいて入力データの適正を判定する判定手段を備えるため、管理者側で処理をクローズすることができ、ユーザによる改竄等のリスクを回避してセキュリティを保つことができるという効果を奏する。   As described above, in the information processing apparatus disclosed in the present application, check information is described as a comment for each input item in the dynamic document generation file, and determination means for determining appropriateness of input data based on the check information is provided. Therefore, it is possible to close the process on the administrator side, and it is possible to avoid the risk of tampering by the user and maintain security.

また、動的文書生成ファイルにコメントとしてチェック内容を記述するだけで、入力項目ごとにチェックロジック等のプログラムを生成する必要がなくなるため、開発者の作業を大幅に軽減することができ、作業工数を削減することができるという効果を奏する。   In addition, it is not necessary to generate a program such as a check logic for each input item simply by describing the check contents as a comment in the dynamic document generation file. There is an effect that can be reduced.

さらに、チェック情報はコメントとして記述されるため、ファイル上のどの位置に記述しても良く、例えば、入力項目ごとにJSPのコードとチェック情報を併記することで、視認性を向上させてレビューや保守、メンテナンス作業等を効率よく行うことができるという効果を奏する。   Further, since the check information is described as a comment, it may be described at any position on the file. For example, by adding a JSP code and check information for each input item, visibility can be improved. There is an effect that maintenance, maintenance work, and the like can be performed efficiently.

さらにまた、チェック情報はコメントとして記述されるため、動的文書生成ファイルを展開する際に余分なメモリの使用を抑えることができ、システムの資源を有効的に活用することができるという効果を奏する。   Furthermore, since the check information is described as a comment, it is possible to suppress the use of extra memory when expanding the dynamic document generation file, and it is possible to effectively use system resources. .

さらにまた、入力データの適正を判定した結果に応じて、対応する処理を実行する対応処理実行手段を備えるため、例えば、緊急性を要する処理が必要な場合には、迅速に対応することができ、緊急性を要しない場合は、後程じっくり対応することも可能となる。つまり、入力データに応じて臨機応変に対応することができるという効果を奏する。   Furthermore, since the corresponding processing execution means for executing the corresponding processing according to the result of determining the appropriateness of the input data is provided, for example, when processing that requires urgency is required, it is possible to respond quickly. If there is no need for urgency, it will be possible to respond later. In other words, there is an effect that it is possible to respond flexibly according to input data.

なお、例えば、ユーザ端末から送信された入力データが不適正であり、緊急性を要する対応が必要な場合には、セッション自体を解放するような処理を行ってもよい。そうすることで被害の拡大を最小限に抑えることができる。   For example, when the input data transmitted from the user terminal is inappropriate and a response requiring urgency is required, a process for releasing the session itself may be performed. By doing so, the spread of damage can be minimized.

(2.チェック情報の保持手段)
情報処理装置は、前記読込手段が読み込んだチェック情報を保持する情報保持手段と、前記読込手段が読み込んだチェック情報を前記情報保持手段に書き込む書込手段とを備え、前記比較手段が、前記入力データと前記情報保持手段に保持されたチェック情報とを比較するものである。
(2. Check information holding means)
The information processing apparatus includes an information holding unit that holds the check information read by the reading unit, and a writing unit that writes the check information read by the reading unit into the information holding unit, and the comparing unit includes the input The data is compared with the check information held in the information holding means.

(3.入力サイズ、入力文字コードの判定)
情報処理装置は、前記チェック情報に前記入力データのサイズを制限する情報、及び、文字コードの種別を制限する情報の少なくとも一の情報が含まれるものである。
なお、Webアプリケーションを利用するシステムにおいては、一般的に入力項目には文字数や文字コードが制限されている場合が多い。それにも関わらず文字数違反や文字コード違反のデータが入力された場合は、特殊なツールを利用した悪意のある攻撃であると見なすことができる。従って、上記チェック情報を含むことで、悪意のある攻撃を検出して、それに応じた処置(セッション解放等)を行うことができる。
(3. Determination of input size and input character code)
In the information processing apparatus, the check information includes at least one of information that restricts the size of the input data and information that restricts the type of character code.
In a system using a Web application, the number of characters and the character code are generally limited for input items. Nevertheless, if data on the number of characters violation or character code violation is input, it can be regarded as a malicious attack using a special tool. Therefore, by including the check information, it is possible to detect a malicious attack and perform a corresponding action (such as session release).

(4.XSSが含まれる場合のデータサイズのチェック)
情報処理装置は、前記入力データにクロスサイトスクリプティングが含まれる場合に、当該クロスサイトスクリプティングを無害化するXSS(Cross Site Scripting)無害化手段を備え、前記比較手段が、前記XSS無害化手段にて無害化された結果に基づいて前記チェック情報に含まれる入力データのサイズを制限する情報又は入力データのサイズの情報を変更して比較を行うものである。
(4. Check data size when XSS is included)
The information processing apparatus includes XSS (Cross Site Scripting) detoxifying means for detoxifying the cross-site scripting when the input data includes cross-site scripting, and the comparing means is the XSS detoxifying means. Based on the detoxified result, the information for limiting the size of the input data included in the check information or the information on the size of the input data is changed for comparison.

なお、チェック情報の文字数の制限値を変更する場合は、XSSの無害化により増えた文字数分を制限値に加算する処理を行い、入力データのサイズの値を変更させる場合は、XSSの無害化により増えた文字数分を入力データのサイズの値から減算する処理を行う。   When changing the limit value for the number of characters in the check information, processing is performed to add the number of characters increased by detoxification of the XSS to the limit value, and when changing the size value of the input data, the destabilization of the XSS is performed. The number of characters increased by the above is subtracted from the size value of the input data.

(5.処理種別に応じた入力データのチェック)
情報処理装置は、前記入力データ及び前記チェック情報が処理の種別を特定する処理種別情報を含み、前記比較手段が、前記処理種別情報に基づいて前記入力データ及びチェック情報を選択して比較処理を行うものである。
(5. Check input data according to processing type)
The information processing apparatus includes processing type information in which the input data and the check information specify a processing type, and the comparison unit selects the input data and the check information based on the processing type information and performs a comparison process. Is what you do.

(6.チェック情報を記述手段)
情報処理装置は、前記動的文書生成ファイルに記述されたコードに基づいて前記チェック情報を当該動的文書生成ファイルにコメントとして記述するチェック情報記述手段を備えるものである。
(6. Means for describing check information)
The information processing apparatus includes check information description means for describing the check information as a comment in the dynamic document generation file based on a code described in the dynamic document generation file.

これまで、本発明を装置として示したが、所謂当業者であれば明らかであるように本発明を方法、及び、プログラムとして捉えることもできる。これら前記の発明の概要は、本発明に必須となる特徴を列挙したものではなく、これら複数の特徴のサブコンビネーションも発明となり得る。   Although the present invention has been shown as an apparatus so far, as will be apparent to those skilled in the art, the present invention can also be understood as a method and a program. These outlines of the invention do not enumerate the features essential to the present invention, and a sub-combination of these features can also be an invention.

以下、本発明の実施の形態を説明する。本発明は多くの異なる形態で実施可能である。従って、本実施形態の記載内容のみで本発明を解釈すべきではない。また、本実施形態の全体を通して同じ要素には同じ符号を付けている。   Embodiments of the present invention will be described below. The present invention can be implemented in many different forms. Therefore, the present invention should not be construed based only on the description of the present embodiment. Also, the same reference numerals are given to the same elements throughout the present embodiment.

以下の実施の形態では、主に装置について説明するが、所謂当業者であれば明らかな通り、本発明は方法、及び、コンピュータを動作させるためのプログラムとしても実施できる。また、本発明はハードウェア、ソフトウェア、または、ハードウェア及びソフトウェアの実施形態で実施可能である。プログラムは、ハードディスク、CD−ROM、DVD−ROM、光記憶装置、または、磁気記憶装置等の任意のコンピュータ可読媒体に記録できる。さらに、プログラムはネットワークを介した他のコンピュータに記録することができる。   In the following embodiments, the apparatus will be mainly described. However, as is apparent to those skilled in the art, the present invention can also be implemented as a method and a program for operating a computer. In addition, the present invention can be implemented in hardware, software, or hardware and software embodiments. The program can be recorded on any computer-readable medium such as a hard disk, CD-ROM, DVD-ROM, optical storage device, or magnetic storage device. Furthermore, the program can be recorded on another computer via a network.

(本発明の第1の実施形態)
(1.構成と機能)
(1−1 ハードウェア構成)
図1は、本実施形態に係る情報処理装置のハードウェアの構成図である。情報処理装置100は、CPU(Central Processing Unit)101、RAM(Random Access Memory)102、ROM(Read Only Memory)103、フラッシュメモリ(Flash memory)104、外部記憶装置であるHD(Hard disk)105、LAN(Local Area Network)カード106、マウス107、キーボード108、ビデオカード109、このビデオカード109と電気的に接続する表示装置であるディスプレイ109a、サウンドカード110、このサウンドカード110と電気的に接続する音出力装置であるスピーカ110a及びフレキシブルディスク、CD−ROM、DVD−ROM等の記憶媒体を読み書きするドライブ111からなる。
なお、上記ハードウェア構成はあくまで一例を示したものであり、構成要素の変更をすることができるのは当然である。
(First embodiment of the present invention)
(1. Configuration and function)
(1-1 Hardware configuration)
FIG. 1 is a hardware configuration diagram of the information processing apparatus according to the present embodiment. The information processing apparatus 100 includes a CPU (Central Processing Unit) 101, a RAM (Random Access Memory) 102, a ROM (Read Only Memory) 103, a flash memory (Flash memory) 104, an HD (Hard disk) 105 as an external storage device, A LAN (Local Area Network) card 106, a mouse 107, a keyboard 108, a video card 109, a display 109a that is a display device electrically connected to the video card 109, a sound card 110, and an electrical connection to the sound card 110. It comprises a speaker 110a, which is a sound output device, and a drive 111 for reading and writing a storage medium such as a flexible disk, CD-ROM, DVD-ROM or the like.
Note that the above hardware configuration is merely an example, and it is natural that the components can be changed.

(1−2 モジュール構成と機能)
図2は、本実施形態に係る情報処理装置のモジュール構成図である。情報処理装置100は、チェック情報抽出部210と、チェック処理部220と、JSPファイル230と、チェックファイル240とを備える。チェック情報抽出部210は、JSPファイル読込部211と、チェックファイル作成部212と、チェック情報取得部213と、チェック情報書込部214とを備え、チェック処理部220は、データ入力部221と、チェックパターン決定部222と、比較処理部223と、判定処理部224と、チェック結果処置部225とを備える。
(1-2 Module configuration and functions)
FIG. 2 is a module configuration diagram of the information processing apparatus according to the present embodiment. The information processing apparatus 100 includes a check information extraction unit 210, a check processing unit 220, a JSP file 230, and a check file 240. The check information extraction unit 210 includes a JSP file reading unit 211, a check file creation unit 212, a check information acquisition unit 213, and a check information writing unit 214. The check processing unit 220 includes a data input unit 221, A check pattern determination unit 222, a comparison processing unit 223, a determination processing unit 224, and a check result treatment unit 225 are provided.

JSPファイル読込部211は、JSPファイル230を読み込む処理を行う。JSPファイルは開発者により予め作成されており、所定の書式に従って、コメントとして入力項目ごとにチェック情報が記述されている。チェック情報の具体例として、例えば、入力項目のサイズチェックを行うためのサイズ制限値や入力項目に使用する文字コードを制限する情報等が含まれる。   The JSP file reading unit 211 performs processing for reading the JSP file 230. The JSP file is created in advance by the developer, and check information is described for each input item as a comment according to a predetermined format. Specific examples of the check information include, for example, a size limit value for checking the size of the input item, information for limiting the character code used for the input item, and the like.

チェックファイル作成部212は、チェック対象となるJSPファイルに対応するチェックファイルを作成する処理を行う。具体的には、JSPファイル読込部211が読み込んだ情報からチェック対象となるJSPファイルを特定する情報としてJSPファイルのファイル名を取得し、そのファイル名に該当するチェックファイルがチェックファイル240に存在するかどうかを確認する。該当するチェックファイルが存在していれば何もしないが、該当するチェックファイルが存在していなければ、チェックファイルを作成する。   The check file creation unit 212 performs processing for creating a check file corresponding to the JSP file to be checked. Specifically, the file name of the JSP file is acquired as information for specifying the JSP file to be checked from the information read by the JSP file reading unit 211, and the check file corresponding to the file name exists in the check file 240. Check whether or not. If the corresponding check file exists, nothing is done. If the corresponding check file does not exist, a check file is created.

チェック情報取得部213は、JSPファイル読込部211が読み込んだ情報からチェック情報を抽出して取得する処理を行う。
チェック情報書込部214は、チェック情報取得部213が取得したチェック情報をチェックファイルに書き込む処理を行う。ここで、チェックファイルに既に書き込まれている項目については最新情報を優先して上書きする。
The check information acquisition unit 213 performs processing for extracting and acquiring check information from the information read by the JSP file reading unit 211.
The check information writing unit 214 performs processing for writing the check information acquired by the check information acquisition unit 213 into the check file. Here, with respect to items already written in the check file, the latest information is overwritten with priority.

データ入力部221は、ユーザから入力された入力データを受け付ける処理を行う。
チェックパターン決定部222は、データ入力部221が受け付けた入力データに基づいて、チェック対象となる入力項目ごとに該当するチェック情報をチェックファイル240から抽出して決定する処理を行う。
The data input unit 221 performs processing for receiving input data input from the user.
Based on the input data received by the data input unit 221, the check pattern determination unit 222 performs processing for extracting check information corresponding to each input item to be checked from the check file 240 and determining it.

比較処理部223は、データ入力部221が受け付けた入力データとチェックパターン決定部222が決定したチェック情報を入力項目ごとに比較する処理を行う。
判定処理部224は、比較処理部223が比較した結果に基づいて、入力データが設計上適正なデータであるかどうかを判定する処理を行う。設計上適正なデータかどうかの判定は、例えば、入力項目に入力できる文字数の制限を満たしているかどうかや、使用できる文字コードの制限を満たしているかどうかにより判定される。
The comparison processing unit 223 performs processing for comparing the input data received by the data input unit 221 and the check information determined by the check pattern determination unit 222 for each input item.
The determination processing unit 224 performs processing for determining whether or not the input data is design appropriate data based on the result of the comparison performed by the comparison processing unit 223. The determination as to whether the data is appropriate in design is made based on, for example, whether or not the limit on the number of characters that can be input to the input item is satisfied, and whether or not the limit on the usable character code is satisfied.

チェック結果処置部225は、判定処理部224が判定した結果に応じた処置を決定して実行する処理を行う。例えば、判定結果が悪意のある攻撃であるような場合には、即座にセッションの解放を行ったり、入力ミスの場合には警告を表示するような処理を行う。   The check result treatment unit 225 performs a process of determining and executing a treatment corresponding to the result determined by the determination processing unit 224. For example, if the determination result is a malicious attack, the session is immediately released, or a warning is displayed if there is an input error.

JSPファイル230は、Webページを生成してユーザの端末に表示するように動作させるためのコードが記述されたファイルである。本実施形態では、このJSPファイルにコメントとして入力項目のチェック情報を所定の書式に従って記述する。チェック情報はコメントとして記述されるため、Webページの生成には影響を及ぼすことがない。また、コメントであるため、チェック情報によりメモリを消費することもない。また、所定の書式を簡略化すれば、開発者がチェック情報を容易に記述することも可能となる。   The JSP file 230 is a file in which a code for generating an operation to generate a Web page and display it on the user's terminal is described. In the present embodiment, check information of input items is described in the JSP file as a comment according to a predetermined format. Since the check information is described as a comment, it does not affect the generation of the Web page. Moreover, since it is a comment, memory is not consumed by check information. Further, if the predetermined format is simplified, the developer can easily describe the check information.

チェックファイル240は、JSPファイルに記述されたチェック情報が書き込まれたファイルである。JSPファイルからチェック情報の箇所のみを抽出して記述されている。このチェックファイル240は、チェック対象となるJSPファイルごとに作成される。   The check file 240 is a file in which check information described in the JSP file is written. Only the part of the check information is extracted from the JSP file and described. This check file 240 is created for each JSP file to be checked.

なお、チェックファイル240、チェックファイル作成部212、チェック情報書込部214、及び、チェックパターン決定部222は必ずしも備える構成としなくてもよい。その場合、チェック情報取得部213が取得した情報とデータ入力部221が受け付けた入力データとを比較処理部223が比較するようにしてもよい。   The check file 240, the check file creation unit 212, the check information writing unit 214, and the check pattern determination unit 222 are not necessarily provided. In that case, the comparison processing unit 223 may compare the information acquired by the check information acquisition unit 213 with the input data received by the data input unit 221.

(2.動作)
(2−1 情報処理装置の動作概要)
以下に、本実施形態に係る情報処理装置の動作を示す。図3は、本実施形態に係る情報処理装置の動作を模式的に示した図である。装置起動時にJSPファイルをオープンし、チェック対象となるJSPのファイル名を取得し、そのファイル名に該当するチェックファイルの存在を確認する。チェックファイルがない場合は新たに作成する。次に、JSPファイルから入力項目ごとのチェック情報を取得し、該当するチェックファイルに書き込む。ここまでが装置起動時に実行される処理であり、チェック情報抽出部210により実行される処理である。
(2. Operation)
(2-1 Outline of operation of information processing apparatus)
The operation of the information processing apparatus according to this embodiment will be described below. FIG. 3 is a diagram schematically illustrating the operation of the information processing apparatus according to the present embodiment. A JSP file is opened when the apparatus is started, the file name of the JSP to be checked is acquired, and the existence of the check file corresponding to the file name is confirmed. If there is no check file, create a new one. Next, check information for each input item is acquired from the JSP file and written to the corresponding check file. The processing so far is the processing executed when the apparatus is activated, and is the processing executed by the check information extraction unit 210.

次に、入力データのチェックを行う。仮に、図3に示すような不正大量データが入力されたとする。入力データは項目ごとにチェックファイルに基づいてチェックされる。ここでは、入力項目Aに不正大量データが含まれているとすると、入力項目Aが入力されると共に、チェックファイルから入力項目Aのチェック情報が読み出される。そして、入力データとチェック情報が比較され、大量不正データによる攻撃を受けたと判定される。
なお、具体的な判定方法については後述する。
Next, input data is checked. Suppose that illegal mass data as shown in FIG. 3 is input. Input data is checked for each item based on a check file. Here, assuming that the input item A includes a large amount of illegal data, the input item A is input and the check information of the input item A is read from the check file. Then, the input data and the check information are compared, and it is determined that the attack is caused by a large amount of illegal data.
A specific determination method will be described later.

大量不正データによる攻撃は、メモリの枯渇を招きシステムに多大な損害を与える可能性が高いため、メモリ領域のセッション情報1(ここでは、セッション1から大量不正データが送信されたとする)を即座に解放して、メモリの枯渇を防止する。正常なデータが入力されて送信された場合は、継続して業務処理等の通常の処理を行う。   An attack with a large amount of illegal data is likely to cause memory depletion and cause a great deal of damage to the system. Therefore, the session information 1 in the memory area (here, a large amount of illegal data is transmitted from session 1) is immediately received. Free up to prevent memory exhaustion. When normal data is input and transmitted, normal processing such as business processing is continued.

(2−2 情報処理装置の動作詳細)
上記処理動作の詳細をフローチャートを用いて説明する。図4は、チェック情報抽出部の動作を示すフローチャートであり、図5は、チェック処理部の動作を示すフローチャートである。
まず、チェック情報抽出部210の動作について説明する。Webアプリケーションのサービスが起動され、指定したフォルダ配下の全JSPファイル名を取得する(ステップS401)。この時、サブフォルダも含めてJSPファイルを検索する。取得したファイルを1つずつオープンし(ステップS402)、ファイルの1行目に記述されているチェック対象のJSP名を取得する(ステップS403)。チェック対象のJSP名のチェックファイルが存在するかどうかを判定し(ステップS404)、存在しなければ取得したJSP名でチェックファイルを作成する(ステップS405)。JSPファイル内にコメントで記述された入力項目ごとのチェック情報を取得し(ステップS406)、取得したチェック情報をチェックファイルに書き込む(ステップS407)。全てのファイルについてチェックファイルの作成処理が終了したら、Webアプリケーションのサービス起動を終了する。
(2-2 Details of operation of information processing apparatus)
Details of the processing operation will be described with reference to a flowchart. FIG. 4 is a flowchart showing the operation of the check information extraction unit, and FIG. 5 is a flowchart showing the operation of the check processing unit.
First, the operation of the check information extraction unit 210 will be described. The Web application service is activated, and all JSP file names under the designated folder are acquired (step S401). At this time, the JSP file including the subfolder is searched. The acquired files are opened one by one (step S402), and the JSP name to be checked described in the first line of the file is acquired (step S403). It is determined whether or not a check file with a JSP name to be checked exists (step S404). If there is no check file, a check file is created with the acquired JSP name (step S405). Check information for each input item described by a comment in the JSP file is acquired (step S406), and the acquired check information is written into the check file (step S407). When the check file creation process is completed for all files, the service activation of the Web application is terminated.

次に、チェック処理部220の処理について説明する。チェック処理が開始されると、Webアプリケーションへ送信された入力データを受け付ける(ステップS501)。処理対象となるJSP名より、利用するチェックファイルを決定し(ステップS502)、決定されたチェックファイルをオープンする(ステップS503)。チェックファイルに書き込まれているチェック対象項目を1つずつチェックする(ステップS504)。以降の処理は、全てのチェック項目について処理が完了するまで繰り返して行われる。   Next, processing of the check processing unit 220 will be described. When the check process is started, the input data transmitted to the Web application is accepted (step S501). A check file to be used is determined from the JSP name to be processed (step S502), and the determined check file is opened (step S503). The check target items written in the check file are checked one by one (step S504). The subsequent processing is repeated until the processing is completed for all check items.

入力データが制限容量を超えているかどうかを判定し(ステップS505)、制限容量を超えていれば、入力元のクライアントとのセッション情報、変数値等を全て解放して(ステップS506)、チェック処理を終了する。制限容量を超えていなければ入力データが適正なデータであるかどうかが判定され(ステップS507)、適正なデータでなければサニタイズ処理又は警告(注意、エラーも含む)処理を行う(ステップS508)。業務処理用のデータとして部品へ値をセットし、全てのチェック対象項目について処理が完了したら、チェック処理を終了する。   It is determined whether or not the input data exceeds the limit capacity (step S505), and if it exceeds the limit capacity, all session information and variable values with the input source client are released (step S506), and a check process is performed. Exit. If the limit capacity is not exceeded, it is determined whether or not the input data is appropriate data (step S507), and if it is not appropriate data, sanitization processing or warning (including caution and error) processing is performed (step S508). A value is set for a part as data for business processing, and when processing is completed for all items to be checked, the check processing ends.

(2−3 チェック情報の抽出とチェック処理の関係)
ここでは、上記チェック情報を抽出する処理とチェック処理との関係についてさらに詳細に説明する。図6は、チェック情報抽出部とチェック処理部との処理関係を示す図である。図6において、JSPファイル230は、sample01.jsp、sample02.jsp、及び、sample02_1.jspを有する。sample02_1.jspはsample02.jspのサブ画面に該当するJSPファイルであり、チェック内容が重複している入力項目が存在している。各JSPファイルを読み込み、各JSPのファイルの1行目から、[@@packに付与した名前].pattern(例えば、samp0le1.pattern)という名前のチェックファイルが存在するかどうかを確認し、存在していなければsample01.patternという名前のチェックファイルを生成する。
(2-3 Relationship between check information extraction and check processing)
Here, the relationship between the check information extraction process and the check process will be described in more detail. FIG. 6 is a diagram illustrating a processing relationship between the check information extraction unit and the check processing unit. In FIG. 6, the JSP file 230 is sample01. jsp, sample02. jsp and sample02_1. jsp. sample02_1. jsp is sample02. There is an input item which is a JSP file corresponding to the sub-screen of jsp and whose check contents are duplicated. Read each JSP file, and from the first line of each JSP file, [name assigned to @@ pack]. Check whether a check file named pattern (for example, samp0le1.pattern) exists, and if not, sample01. Create a check file named pattern.

チェックファイル214が存在している場合、又は生成されたら、JSPファイルからチェック情報を取得し、チェックファイルに書き込む。ここで、チェック情報は、「<%−−」から「−−%>」で囲まれた箇所である。これは、JSPファイルのコード上ではコメントを意味し、JSPファイルの動作には何も影響を与えず、開発者が自由に書き込むことができる書式である。従って、図に示すように入力項目に関するロジックとチェック情報とを併記して記述することで、開発者の視認性を向上させることも可能である。取得したチェック情報(Txt_Data01=byte¥:10;N;)はsample01.patternファイルに書き書き込まれチェックファイルが用意される。   If the check file 214 exists or is generated, check information is acquired from the JSP file and written to the check file. Here, the check information is a portion surrounded by “<% −−” to “−−%>”. This means a comment on the code of the JSP file, has no effect on the operation of the JSP file, and can be freely written by the developer. Therefore, it is also possible to improve the visibility of the developer by describing the logic relating to the input item and the check information as shown in the figure. The acquired check information (Txt_Data01 = byte ¥: 10; N;) is sample01. A check file is prepared by writing to the pattern file.

sample02.jsp、sample02_1.jspについても同様の処理が行われ、sample02.patternという名前のチェックファイルが用意される。この時、sample02.jspとsample02_1.jspのいずれにもTxt_Data03についてのチェック情報が含まれている。このような場合は、sample02.patternには追記/上書きされる。つまり後に処理された内容でチェックファイルが用意される。   sample02. jsp, sample02_1. The same processing is performed for jsp, sample02. A check file named “pattern” is prepared. At this time, sample02. jsp and sample02_1. Check information about Txt_Data03 is included in all of jsp. In such a case, sample02. “pattern” is additionally written / overwritten. That is, a check file is prepared with the contents processed later.

なお、sample02.jspとsample02_1.jspのチェックファイルを同一のチェックファイルとしたが、それぞれ個別にチェックファイルを用意するようにしてもよい。   In addition, sample02. jsp and sample02_1. Although the check files of jsp are the same check file, the check files may be prepared individually.

また、同一のチェック情報が存在する場合に、後処理の内容で追加/上書きするようにしたが、チェック内容が厳しい方の情報(例えば、制限容量が100バイトと80バイトであれば80バイト、文字コードが全角+半角と半角のみであれば半角のみ)を優先してチェックファイルに書き込むようにしてもよい。
さらに、ファイルの更新日時に基づいて、最新の更新日時のファイルに記述されたチェック情報を優先してチェックファイルに書き込むようにしてもよい。
In addition, when the same check information exists, it is added / overwritten with the contents of post-processing. However, information with a stricter check content (for example, 80 bytes if the limited capacity is 100 bytes and 80 bytes, If the character code is full-width + half-width and half-width only, half-width) may be preferentially written to the check file.
Furthermore, based on the update date of the file, check information described in the file with the latest update date may be preferentially written to the check file.

このようにして生成されたチェックファイルを利用してチェック処理が行われる(図右端のフロー)。sample01.jspのWeb画面で値が入力されてsubmitされると、入力データに基づいてsample01.patternファイルが読み込まれ、そのチェック情報に基づいてチェック処理が行われる。ここでは、Txt_Data01が10バイト以内、Txt_Data02が4バイト以内であるかどうかがチェックされる。超えている場合は不正と見なしてセッションを終了する。バイト数のチェックをクリアした場合は、必要に応じて文字コードのチェック、XSSのチェックが行われる。ここでは、Txt_Data01が全角のみかどうか、Txt_Data02が半角数値のみかどうか、それぞれにXSSが含まれているかどうかがチェックされる。違反していれば、サニタイズ処理や警告メッセージ等が表示される。sample02.jsp、sample02_1.jspのファイルについても同様のチェックが行われる。全ての入力データがチェックをクリアしたら業務処理等の内部処理に移行する。   Check processing is performed using the check file generated in this way (flow at the right end of the figure). sample01. When a value is input and submitted on the Web screen of jsp, sample01. The pattern file is read and a check process is performed based on the check information. Here, it is checked whether Txt_Data01 is within 10 bytes and Txt_Data02 is within 4 bytes. If exceeded, it is considered invalid and the session is terminated. When the byte count check is cleared, a character code check and an XSS check are performed as necessary. Here, it is checked whether Txt_Data01 is full-width only, whether Txt_Data02 is only half-width numeric values, and whether each contains XSS. If there is a violation, a sanitization process or a warning message is displayed. sample02. jsp, sample02_1. A similar check is performed for the jsp file. When all input data clears the check, the process shifts to internal processing such as business processing.

このように、本実施形態に係る情報処理装置によれば、JSPファイルに入力項目ごとにコメントとしてチェック情報が記述されており、そのチェック情報に基づいて入力データの適正を判定する判定手段を備えるため、管理者側で処理をクローズすることができ、ユーザによる改竄等のリスクを回避してセキュリティを保つことができる。   As described above, according to the information processing apparatus according to the present embodiment, the check information is described as a comment for each input item in the JSP file, and provided with a determination unit that determines the appropriateness of the input data based on the check information. Therefore, the processing can be closed on the administrator side, and security can be maintained by avoiding risks such as tampering by the user.

また、JSPファイルにコメントとしてチェック内容を記述するだけで、入力項目ごとにチェックロジック等のプログラムを生成する必要がなくなるため、開発者の作業を大幅に軽減することができ、作業工数を削減することができる。   In addition, it is not necessary to generate a program such as check logic for each input item simply by describing the check contents as a comment in the JSP file, so that the work of the developer can be greatly reduced and the number of work steps can be reduced. be able to.

さらに、チェック情報はコメントとして記述されるため、ファイル上のどの位置に記述しても良く、入力項目ごとにJSPのコードとチェック情報を併記することで、視認性を向上させてレビューや保守、メンテナンス作業等を効率よく行うことができる。   Furthermore, since the check information is described as a comment, it may be described at any position on the file. By adding the JSP code and the check information for each input item, the visibility is improved for review and maintenance. Maintenance work and the like can be performed efficiently.

さらにまた、チェック情報はコメントとして記述されるため、JSPファイルを展開する際に余分なメモリの使用を抑えることができ、システムの資源を有効的に活用することができる。   Furthermore, since the check information is described as a comment, the use of extra memory can be suppressed when developing the JSP file, and system resources can be effectively utilized.

さらにまた、入力データの適正を判定した結果に応じて、対応する処理を実行する対応処理実行手段を備えるため、例えば、緊急性を要する処理が必要な場合には、セッションを解放する等して迅速に対応することができ、緊急性を要しない場合は、後程じっくり対応することも可能となる。つまり、入力データに応じて臨機応変に対応することができる。   Furthermore, since the corresponding processing execution means for executing the corresponding processing according to the result of determining the appropriateness of the input data is provided, for example, when a process requiring urgency is required, the session is released. It is possible to respond promptly, and if it is not urgent, it can be handled later. That is, it is possible to respond to the occasion according to the input data.

さらにまた、チェック情報取得部213が取得したチェック情報をチェックファイル240が保持するため、入力データをチェックする際に、JSPファイルの中身を全て参照する必要がなく、チェックファイル240に格納されている情報のみを参照すればよく、処理時間を短縮することができる。特に、JSPファイルのファイルサイズが大きい場合やコメント以外のコードが大量に記述されている場合には、大きな効果となり得る。   Furthermore, since the check file 240 holds the check information acquired by the check information acquisition unit 213, it is not necessary to refer to the entire contents of the JSP file when checking input data, and the check file 240 is stored in the check file 240. Only the information needs to be referred to, and the processing time can be shortened. In particular, when the JSP file has a large file size or a large amount of code other than comments is described, this can be a great effect.

さらにまた、入力データのサイズを制限する情報及び文字コードの種別を制限する情報の少なくとも一の情報に基づいて入力データをチェックするため、ツールを用いたバッファオーバーフロー等の攻撃を検出することができ、セキュリティを強化することができる。   Furthermore, since the input data is checked based on at least one of the information that restricts the size of the input data and the information that restricts the character code type, it is possible to detect attacks such as buffer overflow using a tool. , Can enhance security.

(本発明の第2の実施形態)
以下に、本発明の第2の実施形態について説明するが、ここでは、第1の実施形態を前提にしており、第1の実施形態と重複する部分については説明を省略する。
(1.構成と機能)
図7は、本実施形態に係る情報処理装置のモジュール構成図である。第1の実施形態と異なる点は、比較処理部223が、XSS無害化処理部223aと情報変更処理部223bと比較部223cとを備える点である。
(Second embodiment of the present invention)
Hereinafter, a second embodiment of the present invention will be described. Here, the first embodiment is assumed, and the description of the same parts as those in the first embodiment is omitted.
(1. Configuration and function)
FIG. 7 is a module configuration diagram of the information processing apparatus according to the present embodiment. The difference from the first embodiment is that the comparison processing unit 223 includes an XSS detoxification processing unit 223a, an information change processing unit 223b, and a comparison unit 223c.

XSS無害化処理部223aは、入力データにXSSが含まれている場合に、XSSをサニタイズする処理を行う。具体的には、「<」、「&」等のHTML上の制御コードが入力データに含まれる場合に、Webアプリケーションに害を及ぼさないように、予め定められた他の文字に置き換える処理を行う。例えば、「<」は「&lt;」に置き換えられる。   The XSS detoxification processing unit 223a performs a process of sanitizing the XSS when the input data includes XSS. Specifically, when HTML control codes such as “<” and “&” are included in the input data, a process for replacing with other predetermined characters is performed so as not to harm the Web application. . For example, “<” is replaced with “&lt;”.

情報変更処理部223bは、XSS無害化処理部223aがサニタイズした結果に応じて、制限容量の大きさ又は入力データの容量を変更する処理を行う。XSS無害化処理部223aがサニタイズすることで、入力データの文字列のサイズが大きくなる場合がある。上記の例で言えば、「<」を「&lt;」に置き換えたら、文字数が3文字増える。そのような場合に、制限容量を超えていても正常な入力データとして判定するために情報を増減させる。   The information change processing unit 223b performs processing for changing the size of the limited capacity or the capacity of the input data according to the result of sanitization by the XSS detoxification processing unit 223a. When the XSS detoxification processing unit 223a sanitizes, the size of the character string of the input data may increase. In the above example, if “<” is replaced with “&lt;”, the number of characters increases by three. In such a case, the information is increased or decreased in order to determine that the input data is normal even if the limit capacity is exceeded.

なお、チェック情報の文字数の制限値を変更する場合は、XSSの無害化により増えた文字数分を制限値に加算する処理を行い、入力データのサイズの値を変更させる場合は、XSSの無害化により増えた文字数分を入力データのサイズの値から減算する処理を行う。   When changing the limit value for the number of characters in the check information, processing is performed to add the number of characters increased by detoxification of the XSS to the limit value, and when changing the size value of the input data, the destabilization of the XSS is performed. The number of characters increased by the above is subtracted from the size value of the input data.

比較部223cは、情報変更処理部223bが変更した情報に基づいて、入力データとチェック情報を比較する処理を行う。
その他の構成要素については、第1の実施形態と同様であるため説明は省略する。
The comparison unit 223c performs a process of comparing the input data with the check information based on the information changed by the information change processing unit 223b.
Since other components are the same as those in the first embodiment, description thereof will be omitted.

(2.動作)
以下に、本実施形態に係る情報処理装置の動作について説明する。第1の実施形態と異なるのはチェック処理部220の動作である。チェック情報抽出部210の動作については第1の実施形態と同様であるため説明は省略する。
(2. Operation)
The operation of the information processing apparatus according to this embodiment will be described below. The operation of the check processing unit 220 is different from that of the first embodiment. Since the operation of the check information extraction unit 210 is the same as that of the first embodiment, description thereof is omitted.

図8は、チェック処理部220の動作を示すフローチャートである。ステップS501からステップS504までの処理は、第1の実施形態と同じであるため説明は省略する。ステップS504でループ処理に入る。まず、入力データにXSSが含まれるかどうかが判定され(ステップS504a)、含まれていなければステップS505の処理に進む。含まれていればサニタイズ処理を行い(ステップS504b)、チェック情報の制限容量又は入力データの容量を変更して(ステップS504c)、ステップS505の処理に進む。   FIG. 8 is a flowchart showing the operation of the check processing unit 220. Since the processing from step S501 to step S504 is the same as that of the first embodiment, description thereof is omitted. In step S504, loop processing is entered. First, it is determined whether or not XSS is included in the input data (step S504a). If not included, the process proceeds to step S505. If it is included, the sanitization process is performed (step S504b), the limit capacity of the check information or the capacity of the input data is changed (step S504c), and the process proceeds to step S505.

ステップS505では、入力データが制限容量を超えているかどうかを判定、制限容量を超えていれば、入力元のクライアントとのセッション情報、変数値等を全て解放して(ステップS506)、チェック処理を終了する。制限容量を超えていなければ入力データが適正なデータであるかどうかが判定され(ステップS507)、適正なデータでなければ警告(注意、エラーも含む)処理を行う(ステップS508)。業務処理用のデータとして部品へ値をセットし、全てのチェック対象項目について処理が完了したら、チェック処理を終了する。なお、ステップS505以降の処理で第1の実施形態と異なるのは、ステップS508aにてサニタイズ処理を行わない点である。これは、ステップS504bにて既にサニタイズ処理を行っているためである。   In step S505, it is determined whether the input data exceeds the limit capacity. If the limit data exceeds the limit capacity, all session information, variable values, etc. with the input source client are released (step S506), and check processing is performed. finish. If the limit capacity is not exceeded, it is determined whether or not the input data is appropriate data (step S507), and if it is not appropriate data, warning (including caution and error) processing is performed (step S508). A value is set for a part as data for business processing, and when processing is completed for all items to be checked, the check processing ends. Note that the process after step S505 differs from the first embodiment in that the sanitization process is not performed in step S508a. This is because the sanitization process has already been performed in step S504b.

このように、本実施形態に係る情報処理装置によれば、XSSを無害化するXSS無害化処理部223aを備えるため、XSSを無害化することができると共に、無害することで入力データの文字数が制限値を超えてしまった場合であっても、チェック情報の文字数の制限値又は入力データのサイズの値を変更することで、正常な入力データとして判定を行うことができ、システムの動作に矛盾(正常なデータであるにも関わらずバッファオーバーフローであると判定してしまう状況)が生じることを防止することができる。   As described above, according to the information processing apparatus according to the present embodiment, since the XSS detoxification processing unit 223a that detoxifies XSS is provided, XSS can be detoxified and the number of characters of input data can be made harmless. Even if the limit value is exceeded, it can be determined as normal input data by changing the limit value of the number of characters in the check information or the size value of the input data, and there is a discrepancy in system operation. (Situation where it is determined that the buffer overflows despite the normal data) can be prevented.

(本発明の第3の実施形態)
以下に、本発明の第3の実施形態について説明するが、ここでは、第1の実施形態又は第2の実施形態を前提にしており、第1の実施形態又は第2の実施形態と重複する部分については説明を省略する。
(Third embodiment of the present invention)
Hereinafter, a third embodiment of the present invention will be described. Here, the first embodiment or the second embodiment is premised, and overlaps with the first embodiment or the second embodiment. Description of the portion is omitted.

本実施形態に係る情報処理装置の構成及び動作は、第1の実施形態又は第2の実施形態と同じであるが、入力データの構成及びチェックファイルの構成が異なる。図9は、本実施形態に係る情報処理装置の処理を示す図である。図9において、sample01.jspは、画面901を生成するファイルであるとする。画面901は、3種類の処理(登録、更新、削除)を行う画面である。登録処理及び更新処理の場合は、入力データの全てをチェックする必要があり、削除処理の場合は、コードのみをチェックすればよい。つまり、処理の種別によりチェック対象となる入力項目が変わるため、不要なチェック処理を行わないように、JSPファイル及びチェックファイルの内容を追加する。   The configuration and operation of the information processing apparatus according to this embodiment are the same as those of the first embodiment or the second embodiment, but the configuration of input data and the configuration of a check file are different. FIG. 9 is a diagram illustrating processing of the information processing apparatus according to the present embodiment. In FIG. 9, sample01. jsp is a file for generating the screen 901. A screen 901 is a screen for performing three types of processing (registration, update, and deletion). In the case of registration processing and update processing, it is necessary to check all of the input data, and in the case of deletion processing, only the code need be checked. That is, since the input items to be checked vary depending on the type of processing, the contents of the JSP file and the check file are added so that unnecessary check processing is not performed.

具体的には、入力項目ごとに処理種別を識別するためのキーワードを設定し、そのキーワードに応じてチェック処理を行う。図9においては、Txt_Data01については、登録、更新及び削除の全ての場合にチェック処理を行う必要があるため、特にキーワードは設定しない。Txt_Data02については、登録及び更新の場合にチェック処理を行う必要があるため「INSERT」や「UPDATE」といったキーワードをチェックファイル中に記述しておく。そして、比較処理の際には、画面901でのsubmit情報から、3つの処理のうち、いずれの処理が実行されたかを判定して、その処理に該当する入力項目のみをチェックファイルから読み出してチェック処理を行う。   Specifically, a keyword for identifying a processing type is set for each input item, and a check process is performed according to the keyword. In FIG. 9, for Txt_Data01, since it is necessary to perform a check process in all cases of registration, update, and deletion, no keyword is set. Regarding Txt_Data02, since it is necessary to perform a check process in the case of registration and update, keywords such as “INSERT” and “UPDATE” are described in the check file. In the comparison process, it is determined from the submit information on the screen 901 which one of the three processes has been executed, and only the input items corresponding to the process are read from the check file and checked. Process.

このように、本実施形態に係る情報処理装置によれば、処理の種別に応じて、対象となる入力データ及びチェック情報を選択して処理を行うため、必要なチェック処理のみを実行することで、処理を効率的に行うことができる。   As described above, according to the information processing apparatus according to the present embodiment, the target input data and the check information are selected and processed according to the type of the process, so that only the necessary check process is executed. , Processing can be performed efficiently.

(本発明の第4の実施形態)
以下に、本発明の第4の実施形態について説明するが、ここでは、第1の実施形態、第2の実施形態又は第3の実施形態を前提にしており、第1の実施形態、第2の実施形態又は第3の実施形態と重複する部分については説明を省略する。
(Fourth embodiment of the present invention)
Hereinafter, the fourth embodiment of the present invention will be described. Here, the first embodiment, the second embodiment, or the third embodiment is assumed, and the first embodiment, the second embodiment, and the like are assumed. Description of the same parts as those of the third embodiment or the third embodiment will be omitted.

図10は、本実施形態に係る情報処理装置のモジュール構成図である。第1の実施形態と異なる点は、チェック情報記述部1010を備える点である。
チェック情報記述部1010は、JSPファイル213に記述されているプログラムコードに基づいてチェック情報を生成して記述する処理を行う。JSPファイルには、所定の規則に基づいて入力項目に関する情報が項目ごとに記述されている。例えば、図6におけるsample01.jspファイルには入力項目としてTxt_Data01とTxt_Data02という名称で定義された入力項目の情報が記述されている。それぞれの入力項目は、文字タイプ、サイズ、最大文字長等の情報が定義されて記述されている。これらの情報を解析することで、JSPファイルのコメントとしてのチェック情報を生成して記述することができる。
FIG. 10 is a module configuration diagram of the information processing apparatus according to the present embodiment. The difference from the first embodiment is that a check information description unit 1010 is provided.
The check information description unit 1010 performs processing for generating and describing check information based on the program code described in the JSP file 213. In the JSP file, information on input items is described for each item based on a predetermined rule. For example, sample01. In the jsp file, information on input items defined by the names Txt_Data01 and Txt_Data02 is described as input items. Each input item is described by defining information such as a character type, a size, and a maximum character length. By analyzing these pieces of information, check information as comments in the JSP file can be generated and described.

このように、本実施形態に係る情報処理装置によれば、JSPファイルに記述されたコードに基づいて前記チェック情報を生成するため、開発者の負担を軽減して作業工数を削減できる。   As described above, according to the information processing apparatus according to the present embodiment, the check information is generated based on the code described in the JSP file. Therefore, the burden on the developer can be reduced and the work man-hour can be reduced.

(その他の実施形態)
図11は、本実施形態に係る情報処理装置の活用事例を示す図である。情報処理装置100の処理は、Webアプリフレームワークにおける事前処理の中のWebセキュリティ対策処理に該当する。このように、フレームワークの中で事前に入力データのセキュリティチェックを行うことで、業務アプリケーションにおけるデータのチェックロジックを作成する必要がなくなるため、業務アプリケーションの開発者の作業工数の削減を実現することができる。
(Other embodiments)
FIG. 11 is a diagram illustrating an application example of the information processing apparatus according to the present embodiment. The processing of the information processing apparatus 100 corresponds to Web security countermeasure processing in the preprocessing in the Web application framework. In this way, by performing security checks on input data in advance within the framework, it is no longer necessary to create data check logic for business applications, so the work man-hours of business application developers can be reduced. Can do.

以上の前記各実施形態により本発明を説明したが、本発明の技術的範囲は実施形態に記載の範囲には限定されず、これら各実施形態に多様な変更又は改良を加えることが可能である。そして、かような変更又は改良を加えた実施の形態も本発明の技術的範囲に含まれる。このことは、特許請求の範囲及び課題を解決する手段からも明らかなことである。   Although the present invention has been described with the above embodiments, the technical scope of the present invention is not limited to the scope described in the embodiments, and various modifications or improvements can be added to these embodiments. . And embodiment which added such a change or improvement is also contained in the technical scope of the present invention. This is apparent from the claims and the means for solving the problems.

第1の実施形態に係る情報処理装置のハードウェアの構成図である。It is a hardware block diagram of the information processing apparatus which concerns on 1st Embodiment. 第1の実施形態に係る情報処理装置のモジュール構成図である。It is a module block diagram of the information processing apparatus which concerns on 1st Embodiment. 第1の実施形態に係る情報処理装置の動作を模式的に示した図である。It is the figure which showed typically operation | movement of the information processing apparatus which concerns on 1st Embodiment. 第1の実施形態に係る情報処理装置のチェック情報抽出部の動作を示すフローチャートである。It is a flowchart which shows operation | movement of the check information extraction part of the information processing apparatus which concerns on 1st Embodiment. 第1の実施形態に係る情報処理装置のチェック処理部の動作を示すフローチャートである。It is a flowchart which shows operation | movement of the check process part of the information processing apparatus which concerns on 1st Embodiment. 第1の実施形態に係る情報処理装置のチェック情報抽出部とチェック処理部との処理関係を示す図である。It is a figure which shows the processing relationship of the check information extraction part of the information processing apparatus which concerns on 1st Embodiment, and a check process part. 第2の実施形態に係る情報処理装置のモジュール構成図である。It is a module block diagram of the information processing apparatus which concerns on 2nd Embodiment. 第2の実施形態に係る情報処理装置のチェック処理部の動作を示すフローチャートである。It is a flowchart which shows operation | movement of the check process part of the information processing apparatus which concerns on 2nd Embodiment. 第3の実施形態に係る情報処理装置の処理を示す図であるIt is a figure which shows the process of the information processing apparatus which concerns on 3rd Embodiment. 第4の実施形態に係る情報処理装置のモジュール構成図である。It is a module block diagram of the information processing apparatus which concerns on 4th Embodiment. その他の実施形態に係る情報処理装置の活用事例を示す図である。It is a figure which shows the utilization example of the information processing apparatus which concerns on other embodiment.

符号の説明Explanation of symbols

100 情報処理装置
101 CPU
102 RAM
103 ROM
104 フラッシュメモリ
105 HD
106 LANカード
107 マウス
108 キーボード
109 ビデオカード
109a ディスプレイ
110 サウンドカード
110a スピーカ
111 ドライブ
210 チェック情報抽出部
211 JSPファイル読込部
212 チェックファイル作成部
213 チェック情報取得部
214 チェック情報書込部
220 チェック処理部
221 データ入力部
222 チェックパターン決定部
223 比較処理部
223a XSS無害化処理部
223b 情報変更処理部
223c 比較部
224 判定処理部
225 チェック結果対応部
230 JSPファイル
240 チェックファイル
1010 チェック情報記述部
100 Information processing apparatus 101 CPU
102 RAM
103 ROM
104 Flash memory 105 HD
106 LAN card 107 Mouse 108 Keyboard 109 Video card 109a Display 110 Sound card 110a Speaker 111 Drive 210 Check information extraction unit 211 JSP file reading unit 212 Check file creation unit 213 Check information acquisition unit 214 Check information writing unit 220 Check processing unit 221 Data input unit 222 Check pattern determination unit 223 Comparison processing unit 223a XSS detoxification processing unit 223b Information change processing unit 223c Comparison unit 224 Judgment processing unit 225 Check result handling unit 230 JSP file 240 Check file 1010 Check information description unit

Claims (8)

動的に文書を生成するための情報が記述された動的文書生成ファイルから、所定の形式に従って入力項目ごとにコメントとして記述されたチェック情報を読み込む読込手段と、
入力された入力データと前記読込手段が読み込んだチェック情報とを前記入力項目ごとに比較する比較手段と、
前記比較手段が比較した結果に基づいて、前記入力データが設計上適正なデータであるかどうかを判定する判定手段と、
前記判定手段が判定した結果に基づいて、対応する処理を実行する対応処理実行手段とを備える情報処理装置。
Reading means for reading check information described as a comment for each input item according to a predetermined format from a dynamic document generation file in which information for dynamically generating a document is described;
Comparison means for comparing the input data inputted for each input item with the check information read by the reading means;
A determination unit that determines whether the input data is design appropriate data based on a result of the comparison performed by the comparison unit;
An information processing apparatus comprising: a corresponding process execution unit that executes a corresponding process based on a result determined by the determination unit.
請求項1に記載の情報処理装置において、
前記読込手段が読み込んだチェック情報を保持する情報保持手段と、
前記読込手段が読み込んだチェック情報を前記情報保持手段に書き込む書込手段とを備え、
前記比較手段が、前記入力データと前記情報保持手段に保持されたチェック情報とを比較する情報処理装置。
The information processing apparatus according to claim 1,
Information holding means for holding check information read by the reading means;
Writing means for writing the check information read by the reading means into the information holding means,
An information processing apparatus in which the comparison unit compares the input data with check information held in the information holding unit.
請求項1又は2に記載の情報処理装置において、
前記チェック情報に前記入力データのサイズを制限する情報、及び、文字コードの種別を制限する情報の少なくとも一の情報が含まれる情報処理装置。
The information processing apparatus according to claim 1 or 2,
An information processing apparatus in which the check information includes at least one of information that restricts a size of the input data and information that restricts a type of a character code.
請求項3に記載の情報処理装置において
前記入力データにクロスサイトスクリプティングが含まれる場合に、当該クロスサイトスクリプティングを無害化するXSS無害化手段を備え、
前記比較手段が、前記XSS無害化手段にて無害化された結果に基づいて前記チェック情報に含まれる入力データのサイズを制限する情報又は入力データのサイズの情報を変更して比較を行う情報処理装置。
The information processing apparatus according to claim 3, further comprising: XSS detoxifying means for detoxifying the cross-site scripting when the input data includes cross-site scripting.
Information processing in which the comparison means performs comparison by changing information that restricts the size of input data included in the check information or information on the size of the input data based on the result of detoxification by the XSS detoxification means apparatus.
請求項1ないし4のいずれかに記載の情報処理装置において、
前記入力データ及び前記チェック情報が処理の種別を特定する処理種別情報を含み、
前記比較手段が、前記処理種別情報に基づいて前記入力データ及びチェック情報を選択して比較処理を行う情報処理装置。
The information processing apparatus according to any one of claims 1 to 4,
The input data and the check information include processing type information for specifying a processing type,
An information processing apparatus in which the comparison means performs comparison processing by selecting the input data and check information based on the processing type information.
請求項1ないし5のいずれかに記載の情報処理装置において、
前記動的文書生成ファイルに記述されたコードに基づいて前記チェック情報を当該動的文書生成ファイルにコメントとして記述するチェック情報記述手段を備える情報処理装置。
The information processing apparatus according to any one of claims 1 to 5,
An information processing apparatus comprising check information description means for describing the check information as a comment in the dynamic document generation file based on a code described in the dynamic document generation file.
動的に文書を生成するための情報が記述された動的文書生成ファイルから、所定の形式に従って入力項目ごとにコメントとして記述されたチェック情報を読み込む読込ステップと、
入力されたデータを前記入力項目ごとに受け付けるデータ入力ステップと、
前記データ入力ステップで受け付けた入力データと前記読込ステップで読み込んだチェック情報とを比較する比較ステップと、
前記比較ステップで比較した結果に基づいて、前記入力データが設計上適正なデータであるかどうかを判定する判定ステップと、
前記判定ステップで判定した結果に基づいて、対応する処理を実行する対応処理実行ステップとを含む情報処理方法。
A reading step for reading check information described as a comment for each input item according to a predetermined format from a dynamic document generation file in which information for dynamically generating a document is described;
A data input step for receiving input data for each input item;
A comparison step for comparing the input data received in the data input step with the check information read in the read step;
A determination step of determining whether the input data is design appropriate data based on the result of the comparison in the comparison step;
An information processing method including a corresponding process execution step for executing a corresponding process based on the result determined in the determination step.
コンピュータを、
動的に文書を生成するための情報が記述された動的文書生成ファイルから、所定の形式に従って入力項目ごとにコメントとして記述されたチェック情報を読み込む読込手段と、
入力されたデータを前記入力項目ごとに受け付けるデータ入力手段と、
前記データ入力手段が受け付けた入力データと前記読込手段が読み込んだチェック情報とを比較する比較手段と、
前記比較手段が比較した結果に基づいて、前記入力データが設計上適正なデータであるかどうかを判定する判定手段と、
前記判定手段が判定した結果に基づいて、対応する処理を実行する対応処理実行手段として機能させるための情報処理プログラム。
Computer
Reading means for reading check information described as a comment for each input item according to a predetermined format from a dynamic document generation file in which information for dynamically generating a document is described;
Data input means for receiving input data for each input item;
A comparison means for comparing the input data received by the data input means with the check information read by the reading means;
A determination unit that determines whether the input data is design appropriate data based on a result of the comparison performed by the comparison unit;
An information processing program for causing a function to function as corresponding process execution means for executing a corresponding process based on a result determined by the determination means.
JP2008087191A 2008-03-28 2008-03-28 Information processing apparatus, information processing method, and information processing program Active JP5003557B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008087191A JP5003557B2 (en) 2008-03-28 2008-03-28 Information processing apparatus, information processing method, and information processing program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008087191A JP5003557B2 (en) 2008-03-28 2008-03-28 Information processing apparatus, information processing method, and information processing program

Publications (2)

Publication Number Publication Date
JP2009244926A true JP2009244926A (en) 2009-10-22
JP5003557B2 JP5003557B2 (en) 2012-08-15

Family

ID=41306779

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008087191A Active JP5003557B2 (en) 2008-03-28 2008-03-28 Information processing apparatus, information processing method, and information processing program

Country Status (1)

Country Link
JP (1) JP5003557B2 (en)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04333933A (en) * 1991-05-09 1992-11-20 Nec Corp Automatic data value check system for debugger
JPH05334117A (en) * 1992-05-11 1993-12-17 Nec Corp Automatic checking system for data value in debugger
JP2001060151A (en) * 1999-08-20 2001-03-06 Nec Corp Program analyzing device, and storage medium stored with program for program analysis or data for program analysis
JP2004070561A (en) * 2002-08-05 2004-03-04 Funai Electric Co Ltd Debugging device
JP3624248B2 (en) * 2001-07-25 2005-03-02 株式会社シーイーシー Handling of input data
JP2006099460A (en) * 2004-09-29 2006-04-13 Toshiba Corp Unauthorized access detection device, method, and program
JP2007034571A (en) * 2005-07-26 2007-02-08 Fujitsu Ltd Document processing program and document processing method

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04333933A (en) * 1991-05-09 1992-11-20 Nec Corp Automatic data value check system for debugger
JPH05334117A (en) * 1992-05-11 1993-12-17 Nec Corp Automatic checking system for data value in debugger
JP2001060151A (en) * 1999-08-20 2001-03-06 Nec Corp Program analyzing device, and storage medium stored with program for program analysis or data for program analysis
JP3624248B2 (en) * 2001-07-25 2005-03-02 株式会社シーイーシー Handling of input data
JP2004070561A (en) * 2002-08-05 2004-03-04 Funai Electric Co Ltd Debugging device
JP2006099460A (en) * 2004-09-29 2006-04-13 Toshiba Corp Unauthorized access detection device, method, and program
JP2007034571A (en) * 2005-07-26 2007-02-08 Fujitsu Ltd Document processing program and document processing method

Also Published As

Publication number Publication date
JP5003557B2 (en) 2012-08-15

Similar Documents

Publication Publication Date Title
RU2610254C2 (en) System and method of determining modified web pages
US9530006B2 (en) Method and system for performing a memory safety check of a program written in an unmanaged programming language
JP4902129B2 (en) Method and system for enforcing a security policy via a security virtual machine
US20070271617A1 (en) Vulnerability check program, vulnerability check apparatus, and vulnerability check method
JP5786512B2 (en) Solve hybrid constraints to verify security software modules for detecting injection attacks
US8645938B2 (en) System and method for replacing code
JP5786511B2 (en) Solve hybrid constraints to verify software module specification requirements
MX2013013970A (en) System and method for preserving references in sandboxes.
CN111124479B (en) Method and system for analyzing configuration file and electronic equipment
WO2020000747A1 (en) Anti-crawler method and terminal and computer readable storage medium
EP3495978A1 (en) Method for detecting vulnerabilities in software
US20170185784A1 (en) Point-wise protection of application using runtime agent
CN110717181B (en) Non-control data attack detection method and device based on novel program dependency graph
JP2009104342A (en) Data flow analysis apparatus, data flow analysis method and data flow analyzing program
CN113296752A (en) Method, system, device and storage medium for generating API document
KR101842263B1 (en) Method and apparatus for preventing reverse engineering
JP5003557B2 (en) Information processing apparatus, information processing method, and information processing program
CN114329461A (en) Detection method and device
JP2009258796A (en) Program development device and program development method
CN113076084A (en) Resource file processing method, device, equipment and storage medium
CN105242978A (en) Method and device for processing failure of cache lines of CPU under multi-thread condition
JP2006106939A (en) Hacking detection method, hacking detection apparatus, and program
JP2007041777A (en) Language processing method
JP2012018641A (en) Software development system
US20220292193A1 (en) Computer security

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111017

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111101

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111228

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120124

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120326

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

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

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

Free format text: PAYMENT UNTIL: 20150601

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5003557

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150