JP4629291B2 - クライアントの要求を確認する方法およびシステム - Google Patents

クライアントの要求を確認する方法およびシステム Download PDF

Info

Publication number
JP4629291B2
JP4629291B2 JP2001533487A JP2001533487A JP4629291B2 JP 4629291 B2 JP4629291 B2 JP 4629291B2 JP 2001533487 A JP2001533487 A JP 2001533487A JP 2001533487 A JP2001533487 A JP 2001533487A JP 4629291 B2 JP4629291 B2 JP 4629291B2
Authority
JP
Japan
Prior art keywords
client
actions
input
execution
action
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP2001533487A
Other languages
English (en)
Other versions
JP2003513349A5 (ja
JP2003513349A (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
Publication of JP2003513349A publication Critical patent/JP2003513349A/ja
Publication of JP2003513349A5 publication Critical patent/JP2003513349A5/ja
Application granted granted Critical
Publication of JP4629291B2 publication Critical patent/JP4629291B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • H04L63/0245Filtering by information in the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0281Proxies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/168Implementing security features at a particular protocol layer above the transport layer

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)
  • Communication Control (AREA)
  • Computer And Data Communications (AREA)
  • Debugging And Monitoring (AREA)

Description

【0001】
(著作権の注意)
本出願ドキュメントの部分は、著作権保護を受ける内容を含む。著作権の所有者は、特許事務所または商標事務所の特許ファイルまたは記録にあるように、誰もが出願ドキュメントまたは出願の開示をファクシミリで再生することに異存はないが、そうでない場合、すべての著作権を保有する。
【0002】
(関連する出願)
本出願は、以下の同時係属中の出願に関連する。
・1999年10月25日に出願された、弁理士整理番号第3269/8号であるMETHOD AND SYSTEM FOR VERIFYING A CLIENT REQUESTという名称の米国仮特許出願第60/161,473号
・1999年7月1日に出願された、弁理士整理番号第3269/6号であるMETHOD AND SYSTEM FOR EXTRACTING APPLICATION PROTOCOL CHARACTERISTICSという名称の米国特許出願番号第09/345,920号
・1998年9月9日に出願された、弁理士整理番号第3269/3号であるMETHOD AND SYSTEM FOR PROTECTING OPERATIONS OF TRUSTED INTERNAL NETWORKSという名称の米国特許出願番号第09/149,911号
・1998年9月9日に出願された、弁理士整理番号第3269/4号であるMETHOD AND SYSTEM FOR MAITAINING RESTRICTED OPERATING ENVIRONMENTS FOR APPLICATION PROGRAMS OR OPERATING SYSTEMSという名称の米国特許出願番号第09/150,112号
・PCT出願PCT/IL98/3269/4
・PCT出願PCT/IL98/00443
・PCT出願PCT/IL00/00378
これらの出願の開示は、参照することによって、完全に本明細書に組み込まれている。
【0003】
(発明の背景)
本発明は、一般に、プライバシおよびセキュリティのシステムに関し、より詳細には、データ処理システム内において、クライアント装置とホスト装置との間で送信された要求、データ、情報内容、アプリケーション、および他の情報を認可する方法およびシステムに関する。
【0004】
(従来の技術)
クライアント/サーバ・データ処理システムでは、いくつかのパーソナル・コンピュータ、ワーク・ステーション、携帯式および/または手持ち式装置など(「クライアント」)は、1つまたは複数のホスト・コンピュータ(「サーバ」)と連結され、かつ通信している。サーバは、ネットワーク上でクライアントによって共有されている情報および/またはアプリケーション・プログラムに対するクライアントからの要求を処理する。ますます、クライアント/サーバ・ネットワークは、例えば、それ自体がワールド・ワイド・ネットワークの一部である、すなわち、インターネットのワールド・ワイド・ウェブの一部(「ウェブ」)であることが可能であるイントラネットおよびエキストラネットなど、より広範な「ネットワークのネットワーク」を形成するために、連結されるようになってきた。ネットワークを連結することにより、クライアントは、ネットワークにわたって、リソース(例えば、情報およびアプリケーション・プログラム)を供給することが可能になる。
【0005】
潜在的にワールド・ワイド・ネットワーク上で、共有されている情報およびアプリケーション・プログラムの利用可能性が増大するにつれ、個々のクライアント/サーバ・ネットワークの各々の脆弱性が増大している。例えば、ネットワークの1つに記憶されている所有権を主張できる情報およびアプリケーション・プログラムを検索および/または損傷しようとする不謹慎な個人は、所有権を主張できる情報およびアプリケーション・プログラムにアクセスして、無認可の方式で、それを使用する可能性がある。そのような無認可の使用を防止する努力では、多くのネットワークは、「ファイアウォール」を通して、他のネットワークに接続されている。従来のファイアウォールは、内部ネットワーク・リソース(例えば、特有のウェブ・サーバまたはフォルダ)へのアクセス制御に対処し、ネットワークの部分へのアクセスを制限し、および、それに記憶されている所有権を主張できる情報およびアプリケーション・プログラムに対する無認可の検索または損傷を防止するように設計されたハードウェアおよび/またはソフトウェア・システムを含む。
【0006】
しかし、多くの従来のファイアウォール・システムは、アプリケーション・レベルでは認可に対処せず、認可されたクライアントであると偽った不謹慎な個人によって機能しなくなる可能性がある。例えば、多くのウェブ・アプリケーションは、アプリケーションのユーザは、実際に彼/彼女のブラウザ上でアプリケーションのモバイル・エージェントを実行していると想定している。しかし、悪意のあるユーザは規格のウェブ・ブラウザ・ソフトウェアを使用せずにウェブ・サーバに接続することができ、したがって、そのユーザはブラウザ側で強化することが可能である制限になんら束縛されず、悪意のあるユーザは、標準的なクライアントであると偽って、ウェブ・サーバに破壊的なまたは捏造したデータを送信することができる。
【0007】
共通して譲受された米国特許出願第09/345,920号には、標準的なHTMLドキュメントのユーザからの要求を確認するための解決法が記載されている。その解決法は、HTMLドキュメントの内容(「認可されたアクション」)に基づいて、ブラウザ・ソフトウェアが取ることが可能であるアクションのセットまたはパターン(HTTP要求)を抽出することに基づいている。次いで、この認可されたアクションのセットは、クライアントのアプリケーションによって送信された要求に対して整合される。ユーザが、規格のブラウザの1つを使用していない場合であっても、アクションの法的または認可されたセット内からの要求のみが、ウェブ・サーバに渡されることになる。
【0008】
以上の内容を考慮して、本発明の発明者は、上述した確認技術を、ウェブ・サーバの代わりにクライアント・システム上で実行する論理(例えば、HTMLページに埋め込まれたJavaScript(TM)プログラム)に拡張する必要性を認識した。特に、本発明者は、外部データとその上で起きている事象を入手および確認するために、クライアント・サイドの論理の実行をシミュレーションする必要性を認識した。
【0009】
(発明の簡単な概要)
本発明の目的は、サーバ・システムの代わりに、クライアント・システム上で実行する論理のための確認技術を提供することである。
【0010】
本発明の他の目的は、クライアント・サイドの論理(例えば、HTMLページに埋め込まれたJavaScriptプログラム)のための確認技術を提供することである。この技術は、外部データとそこで起きている事象を入手および確認するために、論理の実行をシミュレーションする。
【0011】
本発明のさらに他の目的は、外部データと事象とに対する認可された要求のみが、クライアントから保護されたサーバに渡されるように、論理の実行をシミュレーションするクライアント・サイドの論理のための確認技術を提供することである。
【0012】
本発明の他の目的および利点は、図面とそれに続く記載を考慮することから、より明らかになるであろう。
【0013】
以上および他の問題点は、克服され、目的は、システムおよび方法が、クライアントとデータ処理システムのサーバとの間で送信された要求されたアクションの実行を認可するために提示されている、本発明の実施形態による方法および装置によって実現される。該方法は、アクションのセットまたはプログラム(例えば、HTMLページに埋め込まれたJavaScriptプログラム)を含んでいるメッセージを受信することと、アクションのセットの実行をシミュレーションすることとを含む。リストは、実行されたアクションと、実行されたアクションへのユーザが定義可能な入力とを表すように定義される。次いで、実行されたアクションと、実行されたアクションへのユーザが定義可能な入力のリストとは、許容可能なアクションと入力のリストと比較される。実行リスト内の要素が許容可能なアクションと入力のリストに含まれているとき、メッセージとアクションの含まれていたセットは認可される。
【0014】
本発明は、例示的であり、限定的でないことを意図している添付の図面の図に示されている。図では、同じ参照符号は、同じまたは対応する部分を指すことを意図している。
【0015】
(好ましい実施形態の詳細な説明)
図1Aは、本発明の一実施形態により構成されかつ動作するクライアント/サーバ・データ処理ネットワーク10を示す。データ処理ネットワーク10は、1つまたは複数のホスト/サーバ・コンピュータと連結され、かつ通信している、パーソナル・コンピュータ、ワーク・ステーション、携帯式および/または手持ち式装置など、複数のクライアント・システムを含む。図示を明瞭にするために、複数のクライアントは、クライアント・システム12によって表し、1つまたは複数のサーバは、サーバ14によって表している。クライアント12とサーバ14は、例えばインターネットのワールド・ワイド・ウェブの部分(「ウェブ」)、イントラネット、エキストラネット、または他の個人的なネットワークなど、通信ネットワーク16に有線接続または無線接続を介して結合された、遠隔装置および/または局所装置とすることが可能であることを理解されたい。
【0016】
本発明によれば、認可プロキシ・システム18は、クライアント12とサーバ14の間で結合されており、クライアント12とサーバ14の間でセキュリティ・ポリシ・プロトコルを強化する。例えば、認可プロキシ・システム18は、認可されたアクション(以下で定義)のみが、クライアント12とサーバ14との間で送信された要求、メッセージ、データ、情報内容、アプリケーション、および他の情報などの内部において実施されることを保証する。認可プロキシ・システム18は、クライアント12とサーバ14との間で送信された要求、メッセージ、データ、情報内容、およびアプリケーションの内部にあるコマンド、フィールド、ユーザ選択可能入力オプション、HTTP要求など(例えば、「要求されたアクション」)の実行をシミュレーションし、要求されたアクションが、許容可能なアクション(例えば、「認可されたアクション」)のセット内において定義されることを保証する。許容可能なアクションのセット内に存在しないあらゆるアクションは、アクションの標的(例えば、サーバ14またはクライアント12)に到達し、おそらくはそれを破壊する前に、認可プロキシ18によって拒否される。
【0017】
認可プロキシの実装戦略を変更することは、本発明の範囲内にあることを理解されたい。例えば、図1Aは、サーバ14とは分離した別個のネットワーク10のハードウェア構成要素18として認可プロキシを示す。図1Bでは、認可プロキシは、サーバ20上で実行するアプリケーション・プログラミング論理(「プラグイン」論理26)として実装されている。また、サーバ20は、例えばデータ・ストア28に含まれている、またはウェブ・ページ30の上に含まれている、サーバ20にあるアプリケーション・プログラム、情報内容、およびデータを、要求のあり次第クライアント12に提供するためのプラグイン論理22および24を含む。本発明によれば、認可プラグイン論理26は、送信する前に、クライアント12に提供されるプログラム、内容、およびデータを確認するために、サーバ20の上で実行される。
【0018】
別法として、図1Cは、ネットワーク10’上のルータまたはハブ42に結合されたスニファ装置40内において侵入検出システムとして動作する認可プロキシを示す。一般に知られているように、ハブ42は、ネットワーク10’内において通信を向ける。図1Cに示したように、ハブ42は、ネットワーク10’上の直接通信から、ウェブ・サーバ44を隔離する。スニファ40は、ウェブ・サーバ40を標的にした送信を検出し、遮断する。スニファ40は、遮断した送信を評価し、送信内において要求されたアクションを、例えば、記憶装置46内に含まれている認可されたアクションのリストと比較するために、以下で詳述する方法を実行する。受容可能でない場合、スニファ40は、メッセージを変更するか、または、ネットワーク上の他のシステムにメッセージを渡す。
【0019】
本発明の実施形態について、ウェブをベースとするアプリケーションとして特定のアプリケーションを有するように記載しているが、本明細書に記載されているシステムおよび方法が、任意のクライアント/サーバ通信システム、特に、無認可の要求、データ、およびアプリケーションからサーバを保護するのが望ましい通信システム内において適用可能であることは、本発明の範囲内にあることを理解されたい。
【0020】
以下で詳述するように、本発明の認可プロキシは、サーバ・システムの代わりに、クライアント・システム上で実行される論理を確認するために、2つの技術を使用する。第1の技術では、認可プロキシは、クライアント・サイドの論理の実行をシミュレーションし、各可能なコマンド、フィールド、ユーザが選択可能な入力オプション、およびHTTP要求を呼び出すおよび/またはトリガする。その結果、許容可能なブラウザ・アクションの完全なセットが識別され、実際のクライアント・セッションからの後の要求を確認するために使用される。第2の技術では、プロキシは、実際のクライアント・セッション中に、クライアントサイドの論理の実行を追跡する。追跡の結果は、サーバ・リソースに対する要求内において、認可プロキシに送信される。応答して、認可プロキシは、クライアント・サイドの論理の実行をシミュレーションし、シミュレーション中に入力オプションまたは外部データに対する他の要求に遭遇するとき、追跡結果が使用される。成功したシミュレーションは、サーバ・リソースに対するクライアント要求の承認となり、認可プロキシは、実際の処理のために、要求を適切なサーバに渡す。
【0021】
2つの確認技術は、技術が未知のデータとユーザ介入事象とに関するクライアント論理の問合わせに応答する方法の点で異なっている。これらの技術については、以下で詳述する。
【0022】
本発明の第1の態様では、認可プロキシ(例えば、プロキシ18、「プラグイン」論理26、およびスニファ40)は、クライアントとサーバとの間の送信を評価する方法を呼び出し、サーバから発信されたメッセージ(例えば、JavaScriptオブジェクト)に組み込まれているクライアント・サイドの論理をシミュレーションし、可能な要求されたアクションのリストを抽出する方法を呼び出す。クライアントが、要求を送信する場合、要求されたアクションは、認可されたアクションのリストに対して確認される。アクションが許容可能である場合、送信は、意図した標的の上に渡され、したがって、意図したアプリケーションに矛盾しない要求のみが実施される。
【0023】
図2は、データ処理システムのクライアントとサーバとの間における伝送を確認するためのプロセス(例えば、前述した評価プロセス、シミュレートするプロセス、および抽出プロセス)を示す流れ図である。例えば、図2は、ウェブ・サーバからクライアント(例えば、図1のサーバ14およびクライアント12)への伝送(例えば、HTMLウェブ・ページ102)を描いている。ブロック100で、サーバ14が、HTMLウェブ・ページ102をクライアント12に伝送する。伝送は、図2において線104Aおよび104Bで表されている。図1A〜1Cおよび図2に示すとおり、クライアント12に対するどの伝送も、それぞれ、認可プロキシ18、26、40によって代行受信される。これに応答して、認可プロキシは、確認プロセス(その詳細を破線106内に示す)を呼び出す。
【0024】
ブロック108で、評価プロセスが呼び出される。評価プロセスには、例えば、HTMLページ102を構文解析して、内容およびHTMLタグ、ならびにその中に組み込まれたクライアント側論理(例えば、JavaScriptコード)を識別することが含まれる。HTMLページ102中に存在する構成要素が識別されると、認可プロキシは、ページ102の構成要素の実行をシミュレートして(例えば、シミュレートされたブラウザ環境)、可能なすべての要求された処理を伝送の中で識別することができ、認可された処理のリストに提供できるようにする。
【0025】
シミュレートされたブラウザ環境には、シミュレートされたブラウザのDocument Object Model(「DOM」)およびブラウザ・オブジェクトが再現される、それぞれ、ブロック110および112、JavaScriptランタイム環境が含まれる。JavaScript標準オブジェクトのいくつかは、以下にさらに詳細に説明するとおり、置き換える必要がある。認可プロキシが、シミュレートされた環境内でHTMLページ102の構成要素を実行する。環境内のフックが、あらゆるトリガされたブラウザ処理、例えば、WEBサーバからドキュメントを検索する処理、またはWEBサーバに書式をサブミットする処理を認可プロキシに知らせる。シミュレーションが完了すると、これらの処理は、以下に説明するとおり、クライアントの実際の要求(ブロック120における)に対してマッチされた認可された処理のリストを補足する。
【0026】
前述したとおり、オブジェクトのいくつかおよびそのメソッドは、クライアント・ブラウザ環境を表すようにシミュレートされる必要がある。その第1に来るのは、HTMLドキュメント102から作成されるDOMである。さらに、Navigatorなどのブラウザ・オブジェクトが存在し、このオブジェクトは、Netscapeにおいて、ブラウザ・コンテキストおよぶブラウザ・ウインドウに関する情報を提供する。列挙エンジン(ブロック114における)が、DOM構成要素およびJavaScript構成要素のシミュレーションを調整する。また、時間オブジェクト、ランダム関数などのオブジェクトも、列挙エンジンによってシミュレートされる。これらのオブジェクトすべては、スクリプトがクライアントの環境内、例えば、クライアント・ブラウザ122上でそれらにアクセスした場合、スクリプトが獲得するものと整合性を有していなければならない。例えば、DOMのテキスト領域は、ユーザがブラウザ122に入力した値を返さなければならず、ランダム関数は、クライアント・スクリプトがユーザのブラウザ122内で獲得したのと同じ値を返さなければならず、またnavigator.userAgentは、クライアント・ブラウザ122の名前を戻さなければならない。
【0027】
理解されるとおり、ブラウザ・オブジェクトに入力されるデータのいくつかは、エンベロープ・データから推論され、例えば、navigator.userAgentは、クライアント12から送信されたHTTPヘッダから獲得することができる(例えば、HTMLページ102のオリジナルの要求の中で)。ただし、いくつかのデータは、クライアント側で辿られる実際のシナリオに依存する。JavaScript中に存在するイベント・ハンドラ(例えば、ユーザの行動に応答して実行されるコード)にさらなる複雑さが導入される。JavaScriptのHTMLスクリプト・タグは、ロードされると実行されるが、ある種のコード(例えば、イベント・ハンドラ)は、ユーザの介入があったときにだけ実行される。例えば、HTML言語の入力コントロールの多くに関するonClickイベント・ハンドラが存在する。対応するイベント・ハンドラは、ユーザがコントロールを選択した(例えば、「クリックした」)ときだけ実行される。
【0028】
列挙エンジン(ブロック114)が、カバレッジ・メソッドを行う。例えば、エンジンは、HTMLページ102中のすべのてイベントをトリガすることにより、またユーザによる可能な様々な入力に対する複数のシミュレートされた実行を行うことにより、ブラウザ122による可能なすべての処理をカバーするものと想定する。理解されるとおり、この環境の実行時間は、多くの入力コントロールに依存するスクリプトの場合、指数関数的に増大する。また、この環境内でランダム関数を扱うのが困難である可能性がある。シミュレートされた実行は、その実行がユーザ入力を要求するまで進行する。要求の時点で、様々な可能な入力値でさらなる実行を記録し、シミュレートするのにユーザの行動が必要とされる。シミュレーション・メソッドのこの態様は、図3を参照して以下により詳細に述べる。
【0029】
シミュレーションが完了すると、サーバから発信されたHTMLページ(および関連するクライアント側論理)と整合性を有する可能なすべてのブラウザ処理のリストが提供される。これらの可能な処理は、ブロック118で集約され、「正規の処理」として識別される。正規の処理は、認可プロキシによって利用されて、クライアント・ブラウザ122におけるHTMLページ102の特定の実行から受信される要求の処理を確認する。ブロック120で、クライアントの要求の処理が認可プロキシに戻され、認可プロキシによってHTMLページ102のシミュレーションから生成された正規の処理のリスト118と比較される。したがって、認可プロキシは、正規の処理のリスト118中にその要求および有効なユーザ入力が存在するか、存在しないかに応じてクライアントの要求を受け入れるか、または拒否する(例えば、対応する正規の処理が認可プロキシによって識別されなかった場合、要求の処理は拒否される)。正規の処理のリスト118は、クライアント・ブラウザ122からの要求の処理の受信における遅延に対応するように記憶するのが可能である(例えば、データ・ストア30(図1B)または46(図1C)に)ことを理解されたい。
【0030】
図3を参照して、以下に、HTMLページ102のシミュレートされた実行のなかでユーザ入力の要求および複数の可能な入力された値を扱うオプションを説明する。前述したとおり、ブロック150で、認可プロキシが、HTMLページ102中に含まれるブラウザ・コマンドおよびクライアント論理の実行をシミュレートする。シミュレートされた実行は、入力コントロールが現れるまで(ブロック155で)続くか、または他のユーザ入力の要求が行われる(ブロック165で)。ブロック155で、例えば、<TEXT>、<PASSWORD>&<TEXTAREA>のHTMLタグなどのフリー・テキスト入力コマンドが、HTMLページ102中で検出される。フリー・テキスト入力コマンドが現れた場合、コントロールは、ブロック160に進み、クライアントから受信した入力を表す固有プレース・ホルダが割り当てられる。ブロック160で割り当てられるプレース・ホルダは、例えば、ユーザの行動に応答してフリー・テキスト入力コマンドから生成された入力として生成されたURL内で後に認識されるフィールドである。この後の段階で、認可プロキシは、受信したクライアント要求とのパターン照合を行う(図2のブロック120)。パターン照合は、「安全な」表現だけを許可するように実施する。好ましいパターン照合の技法は、本出願の出願人に共通で譲渡された米国特許出願第09/345920号(弁理士整理番号3269/6)に記載されるHTMLリンク抽出器からもたらされる。プレース・ホルダを含む文字列に基づいて分岐判定(文の場合)を認識するフックが、JavaScript環境の中に組み込まれる。そのような場合、これは、入力がスクリプトの論理進行に影響を与えることを意味するので、実行が無効にされる。システムは、プレース・ホルダが、生成されたURL中に直接に現れることにより、またはプログラムの実行フローに影響を与えることにより間接に、生成されたURLに影響を与える場合、リンクを有効にすることができる。
【0031】
制御は、ブロック160からブロック165に進むか、またはフリー・テキスト入力コマンドが全く現れない場合、ブロック155からブロック165に進む。ブロック165で、認可プロキシが、いくつかの可能な入力値の1つからのユーザによるコマンド要求入力の出現を検出する。そのようなコマンドが現れた場合、コントロールは、ブロック170に進み、現れなければ、コントロールは、ブロック180に進む。ブロック170で、列挙された入力コントロールに対する第1の入手可能な値が割り当てられる。他の可能な正規の入力値も入手可能であるので、制御は、ブロック175に進み、バックトラック・ログ116(図2)中にエントリが行われる。このエントリは、HTMLページ102中の現在の実行の相対位置(例えば、実行における深さ)、ならびに可能な正規のエントリの残りの数を記録する。ログ116は、制御が、前の実行のポイント(深さ)にループバックし、可能な正規の入力値の次の値を選択し、次の正規の入力値で実行を続けるのを可能にすることを理解されたい。ループバックして、HTMLページ102に対するすべての入力の実行をシミュレートすることにより、可能なすべてのブラウザ・コマンドおよびそれに対するユーザ入力が、前述した可能な正規の処理のリスト118中に収集される。
【0032】
提供された値をログ記録した後、ブロック180で実行が継続する。ブロック180で、シミュレータが、コードの終りを検出する。終りが検出された場合、制御は、可能なバックトラック処理のためにブロック185に進む。終りが現れない場合、制御は、ブロック150にループバックし、前述したとおり、シミュレーションが継続する。ブロック185で、バックトラック・ログ116を評価して、さらなる可能な入力値が、さらなる可能な正規の処理の検出を駆動するかどうかが判定される。エントリがバックトラック・ログ116中に残っている場合、深さ変数を利用して、現れた複数の入力コマンドのどれかのところに実行が再配置される。再配置された後、入力コマンドの次の値が割り当てられ、シミュレーションが、相対ロケーションから先にコードの終りまで進む。そのようなループバック実行は、バックトラック・ログ116中の各値が尽きるまで継続される。
【0033】
本発明者は、JavaScript環境におけるバックトラッキングの一実施形態は、バックトラッキング・ポイントまで同一の値で実行を再開することであるのを確認した。別の正規の入力がこの時点で提供され、ログ記録される。このプロセスは、列挙されるすべての値が処理されるまで繰り返される。
【0034】
前述したとおり、シミュレーション・プロセス中の可能なすべての入力およびイベントによってトリガされるすべてのブラウザ処理を集約することにより、認可プロキシは、WEBサーバで発信されるスクリプトと整合性を有する、クライアントからの実質的にすべてではないにしても、ほとんどの可能な要求のリストを獲得する。いくつかの実施形態では、このシステムは、以下に説明する追跡実施形態に対する補助として使用されて、より良好なパフォーマンスを得る。
【0035】
以下に、本発明のシミュレーション実施形態の例を説明する。
HTMLページ(例えば、HTMLページ102)が、3つの入力コントロールを含む。
・2つの国、米国&イスラエルのオプション・リスト(もちろん、完全なリストが可能である)
・性別、男性&女性のラジオ選択
・ユーザの名前に関するテキスト入力
【0036】
HTML中に組み込まれたJavaScriptが、以下のパターンに従ってURLを構成する。
http://site.country.perfectotech.com/gender/name.html
ここで、countryは、国別により「us」または「il」であり、genderは、「boys」または「girls」という値であり、またnameは、入力テキスト・フィールドである。
【0037】
以下が、HTMLページ・コードである。
Figure 0004629291
【0038】
前述したシミュレーション・プロセスは、以下のとおりコードを扱う。
1.ドキュメントの検査により、JavaScriptを実行するイベントは、Get My Pageボタンの上でクリックすることだけであることが与えられる。このイベントがトリガされる。これが、バックトラック・ログ116中に記録され、これがトリガするイベントはこれだけであるという注釈が付けられ、これにより、このエントリが使い果たされる。使い果たしは、後続のステップでより詳細に説明する。
2.ブランチ Aに到達するまでコードが実行される。
3.selectedIndex内で国を表す値が供給され、可能な2つの値、0(米国を表す)および1(イスラエルを表す)が存在する。第1の値が供給され、0の値がブランチ Aで供給されたことが記録される。
4.実行が、ブランチ Bに進み、Genderラジオ・ボックスのチェックされた値がチェックされる。可能な2つの値、真(boys)および偽(girls)が存在する。真の値が供給されて、バックトラック・ログ116に記録される。
5.実行が、アクセス Cに到達するまで進み、テキスト・フィールドの値が必要とされる。プレース・ホルダが供給される。このプレース・ホルダは、通常の状況の下では現れる可能性のないUNICODE文字列である。このプレース・ホルダには、<PHname>というマークが付けられる。バックトラック・ログ116にこれをログ記録する必要はない。というのは、この値を対象とするバックトラッキングは、必要とされないからである。<PHname>のタイプが、最大長10のテキストとして記録される。
6.オブジェクトwindowのJavaScript関数openが、要求されたURLを記録する関数にシミュレートされた環境内でフックされる。構成されたURLは、次のようなものである。
http://site.us.perfectotech.com/boys/<PHname>.html.
7.ポリシー・エンフォーサが、最大長10の任意のテキストに対して<PHname>をマッチさせるのが可能であるという注釈とともに、この新しい可能な処理のことを通知される。
8.実行が再開する。値が次の可能な値、つまり偽で置き換えられた最も深いバックトラッキング・エントリ(ブランチ B)を例外として、同じステップが辿られる。ブランチ Bの可能なすべての値は、使い果たされているので、バックトラック・ログ116中で、使い果たされているというマークが付けられる。
9.したがって、「girls」の値がgenderフィールド内で提供され、生成されるリンクは、http://site.us.perfectotech.com/girls/<PHname>.htmlである。
10.実行が再開する。今度は、ブランチ Bが最も深い分岐であり、次に許可される値、つまりイスラエルを表す1が提供される。
11.再びブランチ Bに到達し、今度は、バックトラック・ログ116は存在せず、したがって、(再)更新されたエントリがログ記録され、第1の正規の処理、すなわち、真(boys)が提供される。
12.実行が、同じパターンで再開し、今度、獲得されるリンクは、次のとおりである。
http://site.il.perfectotech.com/boys/<PHname>.html
13.このプロセスは、すべてのバックトラック・ログが尽きるまで反復して(例えば、性別フィールドに対する「girls」の値を提供して、もう一度)続く。したがって、可能なさらなる実行パスは、存在しない。
【0039】
JavaScriptコードを検査する際、要求http://site.intl.pefectotech.com/...を生成する可能性がある理論上の実行パスが見られたが、DOMは、0または1以外の国に対するselectedIndexを提供しなかったので、このパスは辿られなかった。これは、どのようにJavaScriptコードとDOMの両方が、許可された要求に影響を与えるかの例である。国に関して可能な値は2つしか存在しなかったので、第3の実行パスは、正規のパスではない。
【0040】
本発明の第2の態様では、認可プロキシ(例えば、プロキシ18、「プラグイン」論理26、およびスニファ40)が、クライアントとサーバとの間の伝送を評価するためのメソッドを呼び出す。第1に、クライアント側論理が、コードに挿入されることによってインストルメント化され、クライアント・システム12上でクライアント側論理の実行を追跡する。クライアント・システム12上でユーザによって実行されると、サーバ・リソースの要求が、実際の実行の結果(追跡結果)とともに認可プロキシにおいて受信される。認可プロキシは、クライアント側論理の実行をシミュレートして、入力オプションまたは外部データの他の要求がシミュレーション中に現れたとき、追跡結果が利用される。成功したシミュレーションは、サーバ・リソースのクライアント要求の承認をもたらし、認可プロキシが、実際の処理のためにその要求を適切なサーバに渡す。例えば、受入れ可能な処理を有する伝送が、意図された目標に伝えられ、これにより、意図されたアプリケーションと整合性のある要求だけが実行される。
【0041】
図4は、データ処理システムのクライアントとサーバとの間の伝送を確認するためのプロセス(例えば、前述した追跡するプロセスおよびシミュレートするプロセス)を示す流れ図である。例えば、図4が、WEBサーバ200からクライアント250への伝送(例えば、HTMLウェブ・ページ202)を描いている。本発明によれば、認可プロキシ(例えば、それぞれ、図1A、1B、1Cのプロキシ18、26、40)が、伝送202を代行受信する。シミュレーション・プロセスに入る前に、認可プロキシは、クライアント・ブラウザ250上で生じる値およびイベントの追跡を可能にするコマンドを受信するための伝送を準備する。ブロック204で、伝送(例えば、HTMLページ202)が構文解析されて、内容およびHTMLタグならびにクライアント側論理(例えば、JavaScriptコード)を識別する。クライアント側論理は、ブロック206に進み、ブラウザ処理(例えば、入力値の要求、および実際の入力値、イベント等)を追跡するためのコードが追加される。次に、変更されたコード、つまりインストルメント化されたコードが、要求された伝送の中(例えば、HTMLページ中202)でクライアント・ブラウザ250に渡される。
【0042】
前述したとおり、インストルメント化されたコードは、ブラウザ処理を追跡して、追跡の結果を認可プロキシに戻す(さらなる処理の要求の中で、またはその要求に加えて)。クライアント・ブラウザ250が、サーバ・リソースを要求したとき、ブラウザ処理のトレース(例えば、クライアント・ブラウザ250上で行われた入力およびイベント)が、評価のために認可プロキシに戻される。この実施形態では、すべての入力を列挙する代りに(図2に概要を述べたシミュレーション・プロセスに関連して説明したとおり)、ブラウザが、その要求とともに、ブラウザ環境内で実際のユーザ・セッション中にスクリプトが獲得したすべての値のトレースを送信する。このトレースは、トレース・フィーダにおいて認可プロキシの中で保持される(ブロック212)。
【0043】
追跡の結果が受信されると、認可プロキシが、ブロック210で、オリジナルの伝送(例えば、HTMLページ202)の中のコードおよびDOM構成要素をシミュレートする。図4に示すとおり、シミュレーション・ステップに対する入力は、オリジナルのクライアント側コード(例えば、追跡サポート・コードを有さないクライアント側論理)、DOM構成要素(ブロック208からの)、およびトレース・フィーダ(ブロック212)からの追跡結果を含む。追跡されたオブジェクトが、シミュレートされた環境内で照会されたとき(ブロック210で)、認可プロキシは、(トレース・フィーダを介して)クライアントから受信された追跡された値に関して検査する。また、追跡された値は、オブジェクトの論理上の内容規則に照らしても検査され、例えば、テキスト・フィールド内に許容可能な文字の最大数、または可能な2つの値(真/偽)のどちらかだけでしかないチェックボックス値、他のどの値も不正である。シミュレーションの結果は、ブロック214に渡される受入れ可能な、つまり認可されたブラウザアクションのリストである。ただし、この実施形態では、認可されたブラウザアクションは、第1の確認プロセスに関連して前述したとおり、クライアント・ブラウザにおける特定の実行から決定された値(トレースの中からの入力およびイベント)に基づき、可能なすべてのブラウザ要求に基づくのではない。クライアントアクション(ブロック250から渡された)をブロック214で認可されたアクション(ブロック210から渡された)と比較して、特定のクライアント・ブラウザ実行(ブロック250)の要求の1つまたは複数のアクションが認可されるかどうかの判定を行うことができる。
【0044】
理解されるとおり、ブラウザは、デフォルトで追跡を行うこと、および/または追跡の結果を送信することはしない。したがって、ブラウザに送信されるコード(例えば、HTMLドキュメント202)が、シミュレーションに先立って、ブロック206で行われる前述したステップで変更されて(インストルメント化されて)、このコードが、ブラウザ環境内(ブロック250)のブラウザアクションのトレースを作成して戻す。コードに関する例としてのインストルメント化プロセスは、以下を含む。
・JavaScriptコードが、JavaScriptアセンブリにコンパイルされる。
・アセンブリが、検査され、すべてのget_property、set_property、および関数コールにマークが付けられる
・get_property命令が、関係のあるプロパティ名に照らして検査される。
・関数コールが、追跡された関数値(例えば、ランダム)およびアクション関数(例えば、新しいURLで新しいウインドウを開くwindow.open())に照らして検査される。
・関係のある命令のそれぞれが、オブジェクトが追跡に関係があるか否かを検査する前に関数コールが挿入される。
・get_propetyとして、追跡されるオブジェクトの値が、実行トレースに追加される。
・新しいURLをロードさせるオブジェクトのset_propertyとして、トレースがURLに付加される。
・新しいURLをロードする関数コールとして、トレースがURLに付加される。
・アセンブラが逆コンパイルされて(組み込まれた逆コンパイラを使用して)JavaScriptに戻る。
・変更されたJavaScriptコードが、オリジナルのJavaScriptコードの代りに送信される。
【0045】
以下は、ブラウザに送信されるコードおよび変更されたコードの例である。
【0046】
オリジナルのコードは、以下のとおりである。
Figure 0004629291
HTMLドキュメントは、以下の書式を有する。
Figure 0004629291
変更されたコードは、以下のとおりである。
Figure 0004629291
HTML形式に対する変更は、以下のとおりである。
Figure 0004629291
【0047】
変更されたコードは、document.form[0]のget_property上のas_.propを呼び出して、それが書式であることを検査し、次にelements.day.valueに関して検査する。as_.prop関数は、値が追跡されるべきかどうか(テキスト・フィールドの値の場合と同様に)を検査し、その値を追跡変数に追加する。set_propertyが、変更されてトレースが要求されたURLに追加される。as_.initが、スクリプトのヘッドとイベント・ハンドラの両方において追加される。イベント・ハンドラがトリガされたとき、イベントがトレースに追加される。トレースは、認可プロキシに送信されると、前述したとおり処理される。
【0048】
以下は、ユーザが月曜のチケットを購入するのを選択するプロセスの説明である。コードは、上記にリストしたとおりインストルメント化されている。ただし、ユーザは、コードがインストルメント化されていない場合に見るものと同一の非常に簡単な書式を自らのブラウザ内で見る。
・チケット購入の曜日を選択しなければならないことを明記するテキスト
・「sunday」というデフォルト値を有する簡単なテキスト・ボックス
・要求を送信するボタン
【0049】
ユーザが、「tuesday」を入力して、送信ボタンを選択することによって要求を送信するものと想定する。実際に行われるのは、以下のとおりである。ブラウザ内で、
・送信ボタンを選択することにより、my_send関数を呼び出すイベント・ハンドラが起動される。ただし、イベント・ハンドラを起動することは、追跡されるアクションであり、したがって、インストルメント化されたコード中のas_initによって実行トレースに追加される。
・JavaScript関数であるmy_sendが呼び出される。この関数は、曜日が、平日の1つの曜日にマッチすることを確認し、ページをマッチするページ、new_page?dayで置き換えるものとされる。
・my_send値で、document.forms[0].element.day.valueがアクセスされて、as_propによって追跡される値として識別される。したがって、値「document.forms[0].element.day.value=tuesday」が、トレースに追加される。
・コードであるwindow.location.href=「new_page?」+dayが、インストルメント化されたコード中で実行されたとき、as_setpropが、その変数を追跡されるイベント変数として識別する。通常、新しく設定されたURLに対して単一の要求が生成されていることになる。インストルメント化されたコードの中で、生成されたトレースを含む追加の要求がサーバに送信される。
【0050】
この時点で、サーバ内に、要求とトレースの両方がある。
・オリジナルのコードがシミュレートされた環境内で実行される。
・トレース・フィーダが、送信ボタンに関するイベント・ハンドラの起動を識別し、イベント・ハンドラがトリガされる。
・イベント・ハンドラが、my_sendを呼び出す
・my_sendが、追跡されるオブジェクトである変数「document.forms[0].elements.day.value」にアクセスしようと試みる。
・これにより、トレース・フィーダが、実行トレースから値「tuesday」を検索する。
・トレース・フィーダが、サイズ20のテキスト・ボックス内の正規の入力にマッチすることを確認する。
・値が、JavaScriptコードに提供される。
・JavaScriptコードが、「tuesday」は、実際に平日であることを確認し、window.location.href=「new_page?tuesday」に設定する。
・この属性を設定することにより、正しくマッチする実際の要求に対して「new_page?tuesday」のシミュレートされた要求をマッチさせるイベントが生じる。
【0051】
クライアント・システムのユーザ(例えば、ハッカー・オペレーティング・クライアント12)が、サイズ20のテキスト・フィールドに対する正規の入力を構成しない値(例えば、21文字の入力)を提供しようと試みた場合、トレース・フィーダは、その値に不正な入力としてマークを付け、その実行を停止することにより、その値をブロックすることになる。ユーザが、不正な要求を提供しようと試みた場合には、シミュレートされた環境処理を実際の要求とマッチさせることに失敗する。
【0052】
本発明を好ましい実施形態で説明し図示してきたが、当分野の技術者には明らかなとおり、本発明の趣旨および範囲を逸脱することなく、多くの変形および変更を加えることができ、したがって、そのような変形形態および変更形態も本発明の範囲に含まれるものとするので、本発明は、以上に記載した方法または構成の正確な詳細に限定されるべきものではない。
【図面の簡単な説明】
【図1A】 本発明の一実施形態により構成されかつ動作する、クライアント/サーバ・データ処理ネットワークのブロック図である。
【図1B】 本発明の他の実施形態により構成されかつ動作する、クライアント/サーバ・データ処理ネットワークのブロック図である。
【図1C】 本発明のさらに他の実施形態により構成されかつ動作する、クライアント/サーバ・データ処理ネットワークのブロック図である。
【図2】 本発明の一実施形態によるシミュレーション方法を使用して、クライアントとサーバの間で要求を確認する例示的なプロセスを示すフロー・チャートである。
【図3】 図2のシミュレーション方法へのユーザの入力を受け取る例示的なプロセスを示すフロー・チャートである。
【図4】 本発明の第2実施形態による追跡方法を使用して、クライアントとサーバとの間で要求を確認する例示的なプロセスを示すフロー・チャートである。

Claims (8)

  1. クライアントとデータ処理システムのサーバとの間で送信された要求されたアクションの実行を、前記クライアントと前記サーバに結合された認可プロキシによって認可する方法であって、
    前記認可プロキシが、前記サーバから、アクションのセットを含んでいる第1メッセージを受信するステップと、
    前記認可プロキシが、前記アクションのセットを実行する処理環境をシミュレーションし、前記処理環境内で前記アクションのセットを実行し、実行により生じたアクションと、該アクションに対する入力とのリストを構築するステップと、
    前記認可プロキシが、前記クライアントから、前記第1メッセージを前記クライアントにおいて実際に実行して生じる前記サーバに対するアクションと、該アクションに対する前記クライアントのユーザによる入力とを第2メッセージとして受信するステップと、
    前記認可プロキシが、前記リスト内の前記アクションと前記入力を、前記クライアントから受信した前記サーバに対するアクションと前記入力と比較するステップと、
    前記リストが、前記クライアントから受信した前記アクションと前記入力とにそれぞれ対応するアクションと入力とを含むことを条件に、前記認可プロキシが、前記サーバに対すアクションを認可するステップと、
    を含む方法。
  2. 前記認可プロキシが、前記アクションのセットの実行中に、データ値のエントリを要求する入力制御を検出し、そのデータ値を表すために、文字列割り当て、かつ前記文字列が満たすべき条件を記録するステップと、
    前記認可プロキシが、比較のステップ中に、前記クライアントから受信した、前記文字列に対応する前記入力が、記録した前記条件を満たすか否かを判定するステップとを含む、請求項1に記載の方法。
  3. 前記認可プロキシが、前記アクションのセットの実行中に、
    複数の事前に定義されたデータ値の1つを選択することを要求する入力制御を検出するステップと、
    複数の事前に定義されたデータ値の各々に対して実行中のアクションの実行を行い、前記データ値の各々と、該各々に対する前記アクションの実行より生じる各アクションを前記リストにリストするステップとを含む、請求項1に記載の方法。
  4. 前記認可プロキシが、前記アクションのセットの実行前に、前記クライアントから、前記第1メッセージを前記クライアントにおいて実際に実行する際に行われた前記クライアントへの入力を受信するステップと、
    前記認可プロキシが、前記アクションのセットの実行中に、ユーザが選択可能な入力に応答して、前記アクションのセットの実行前に受信した前記入力を提供するステップとを含む、請求項1に記載の方法。
  5. クライアントとデータ処理システムのサーバとの間で結合された認可プロキシ・システムであって、
    前記クライアントとサーバとの間の送信を評価し、かつ、各送信内のドキュメントに含まれている情報内容とアクションのセットを識別するための評価と、
    前記アクションのセットを実行する処理環境をシミュレーションするシミュレータであって、前記処理環境内で前記アクションのセットを実行し、実行により生じたアクションと、該アクションに対する入力とのリストを構築する、前記シミュレータと、
    前記クライアントから、前記ドキュメントを前記クライアントにおいて実際に実行して生じる前記サーバに対するアクションと、該アクションに対する前記クライアントのユーザによる入力とを含む送信を受信し、受信した前記アクションと前記入力とにそれぞれ対応するアクションと入力とが、前記リスト内に含まれることを条件に、前記送信を記サーバへ渡す認可部とを備える、認可プロキシ・システム
  6. 前記シミュレータが、データ値のエントリを要求する入力制御を検出し、前記データ値を表すために、文字列割り当て、かつ前記文字列が満たすべき条件を記録、前記認可部が、前記クライアントから受信した前記送信内の前記文字列に対応する前記入力が、記録した前記条件を満たすか否かを判定す、請求項5に記載の、認可プロキシ・システム
  7. 前記シミュレータが、複数の事前に定義されたデータ値の1つを選択することを要求する入力制御を検出、前記複数の事前に定義されたデータ値の各々に対して実行中のアクションの実行を繰り返し、前記データ値の各々と、該各々に対する前記アクションの実行より生じる各アクションを前記リストにリストす、請求項5に、認可プロキシ・システム
  8. 前記シミュレータが、前記クライアントから、前記ドキュメントを前記クライアントにおいて実際に実行する際に行われた前記クライアントへの入力を受信し、かつ、該入力を、前記アクションのセットの実行中に、ユーザが選択可能な入力に応答して提供す、請求項5に記載の、認可プロキシ・システム
JP2001533487A 1999-10-25 2000-10-25 クライアントの要求を確認する方法およびシステム Expired - Lifetime JP4629291B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16147399P 1999-10-25 1999-10-25
US60/161,473 1999-10-25
PCT/IL2000/000677 WO2001031415A2 (en) 1999-10-25 2000-10-25 Method and system for verifying a client request

Publications (3)

Publication Number Publication Date
JP2003513349A JP2003513349A (ja) 2003-04-08
JP2003513349A5 JP2003513349A5 (ja) 2007-12-20
JP4629291B2 true JP4629291B2 (ja) 2011-02-09

Family

ID=22581314

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001533487A Expired - Lifetime JP4629291B2 (ja) 1999-10-25 2000-10-25 クライアントの要求を確認する方法およびシステム

Country Status (7)

Country Link
EP (1) EP1232425B1 (ja)
JP (1) JP4629291B2 (ja)
AT (1) ATE398798T1 (ja)
AU (1) AU7944100A (ja)
DE (1) DE60039248D1 (ja)
IL (1) IL149322A0 (ja)
WO (1) WO2001031415A2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6311278B1 (en) 1998-09-09 2001-10-30 Sanctum Ltd. Method and system for extracting application protocol characteristics
ATE414943T1 (de) 2000-03-03 2008-12-15 Ibm System zur bestimmung von schwächen von web- anwendungen
US7549054B2 (en) * 2004-08-17 2009-06-16 International Business Machines Corporation System, method, service method, and program product for managing entitlement with identity and privacy applications for electronic commerce
CN111770170B (zh) * 2020-06-29 2023-04-07 北京百度网讯科技有限公司 请求处理方法、装置、设备和计算机存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5347578A (en) * 1992-03-17 1994-09-13 International Computers Limited Computer system security
US5559800A (en) * 1994-01-19 1996-09-24 Research In Motion Limited Remote control of gateway functions in a wireless data communication network
US5611048A (en) * 1992-10-30 1997-03-11 International Business Machines Corporation Remote password administration for a computer network among a plurality of nodes sending a password update message to all nodes and updating on authorized nodes
US5623601A (en) * 1994-11-18 1997-04-22 Milkway Networks Corporation Apparatus and method for providing a secure gateway for communication and data exchanges between networks
US5692124A (en) * 1996-08-30 1997-11-25 Itt Industries, Inc. Support of limited write downs through trustworthy predictions in multilevel security of computer network communications
US5752022A (en) * 1995-08-07 1998-05-12 International Business Machines Corp. Method for creating a hypertext language for a distributed computer network
US5870544A (en) * 1997-10-20 1999-02-09 International Business Machines Corporation Method and apparatus for creating a secure connection between a java applet and a web server
US5908469A (en) * 1997-02-14 1999-06-01 International Business Machines Corporation Generic user authentication for network computers

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5606668A (en) * 1993-12-15 1997-02-25 Checkpoint Software Technologies Ltd. System for securing inbound and outbound data packet flow in a computer network
US5802320A (en) * 1995-05-18 1998-09-01 Sun Microsystems, Inc. System for packet filtering of data packets at a computer network interface
US6311278B1 (en) * 1998-09-09 2001-10-30 Sanctum Ltd. Method and system for extracting application protocol characteristics

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5347578A (en) * 1992-03-17 1994-09-13 International Computers Limited Computer system security
US5611048A (en) * 1992-10-30 1997-03-11 International Business Machines Corporation Remote password administration for a computer network among a plurality of nodes sending a password update message to all nodes and updating on authorized nodes
US5559800A (en) * 1994-01-19 1996-09-24 Research In Motion Limited Remote control of gateway functions in a wireless data communication network
US5623601A (en) * 1994-11-18 1997-04-22 Milkway Networks Corporation Apparatus and method for providing a secure gateway for communication and data exchanges between networks
US5752022A (en) * 1995-08-07 1998-05-12 International Business Machines Corp. Method for creating a hypertext language for a distributed computer network
US5692124A (en) * 1996-08-30 1997-11-25 Itt Industries, Inc. Support of limited write downs through trustworthy predictions in multilevel security of computer network communications
US5908469A (en) * 1997-02-14 1999-06-01 International Business Machines Corporation Generic user authentication for network computers
US5870544A (en) * 1997-10-20 1999-02-09 International Business Machines Corporation Method and apparatus for creating a secure connection between a java applet and a web server

Also Published As

Publication number Publication date
ATE398798T1 (de) 2008-07-15
EP1232425B1 (en) 2008-06-18
WO2001031415A2 (en) 2001-05-03
EP1232425A4 (en) 2004-05-12
WO2001031415A3 (en) 2001-11-01
EP1232425A2 (en) 2002-08-21
AU7944100A (en) 2001-05-08
DE60039248D1 (de) 2008-07-31
JP2003513349A (ja) 2003-04-08
IL149322A0 (en) 2002-11-10

Similar Documents

Publication Publication Date Title
US7293281B1 (en) Method and system for verifying a client request
Andrews et al. How to break web software: Functional and security testing of web applications and web services
JP4625246B2 (ja) クロスサイトスクリプティング脆弱性の自動検出
Stuttard et al. The web application hacker's handbook: Finding and exploiting security flaws
JP4405248B2 (ja) 通信中継装置、通信中継方法及びプログラム
Shahriar et al. Client-side detection of cross-site request forgery attacks
US7941856B2 (en) Systems and methods for testing and evaluating an intrusion detection system
Hope et al. Web security testing cookbook: systematic techniques to find problems fast
KR101672791B1 (ko) 모바일 웹 애플리케이션 환경에서의 취약점 탐지 방법 및 시스템
Barua et al. Server side detection of content sniffing attacks
McDonald Web security for developers: real threats, practical defense
Kapodistria et al. An advanced web attack detection and prevention tool
CN116324766A (zh) 通过浏览简档优化抓取请求
US20080021904A1 (en) Authenticating a site while protecting against security holes by handling common web server configurations
KR100984639B1 (ko) 보안검수 자동화 시스템 및 방법
Ravindran et al. A Review on Web Application Vulnerability Assessment and Penetration Testing.
Pauli The basics of web hacking: tools and techniques to attack the web
Snyder et al. Pro PHP security
JP4629291B2 (ja) クライアントの要求を確認する方法およびシステム
Sharif Web attacks analysis and mitigation techniques
CN107294994A (zh) 一种基于云平台的csrf防护方法和系统
Jayaraman et al. Enforcing request integrity in web applications
Yin et al. Scanner++: Enhanced Vulnerability Detection of Web Applications with Attack Intent Synchronization
Izagirre Deception strategies for web application security: application-layer approaches and a testing platform
Sharadqeh et al. Review and measuring the efficiency of SQL injection method in preventing e-mail hacking

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20050422

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071025

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071029

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20080409

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20080409

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100202

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100430

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100615

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100824

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100831

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101014

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

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

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

Free format text: PAYMENT UNTIL: 20131119

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4629291

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

EXPY Cancellation because of completion of term