JP5868529B2 - フォームに関係する検証 - Google Patents

フォームに関係する検証 Download PDF

Info

Publication number
JP5868529B2
JP5868529B2 JP2014561112A JP2014561112A JP5868529B2 JP 5868529 B2 JP5868529 B2 JP 5868529B2 JP 2014561112 A JP2014561112 A JP 2014561112A JP 2014561112 A JP2014561112 A JP 2014561112A JP 5868529 B2 JP5868529 B2 JP 5868529B2
Authority
JP
Japan
Prior art keywords
parameter
hidden
field
client device
form field
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2014561112A
Other languages
English (en)
Other versions
JP2015511038A (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.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding 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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Publication of JP2015511038A publication Critical patent/JP2015511038A/ja
Application granted granted Critical
Publication of JP5868529B2 publication Critical patent/JP5868529B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/174Form filling; Merging
    • 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
    • H04L63/1416Event detection, e.g. attack signature detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • 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/1441Countermeasures against malicious traffic

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Artificial Intelligence (AREA)
  • Information Transfer Between Computers (AREA)
  • Document Processing Apparatus (AREA)
  • Storage Device Security (AREA)

Description

[関連出願の相互参照]
本出願は、あらゆる目的のために、参照によって本明細書に組み込まれる、2012年3月8日に出願された発明の名称を「A FORM VALIDATION METHOD,DEVICE,AND SYSTEM(フォーム検証の方法、デバイス、及びシステム)」とする中国特許出願第201210059741.8号に基づく優先権を主張する。
本出願は、インターネット技術の分野に関わり、特に、フォーム検証のための技術に関する。
フォームは、例えばクライアントデバイスとサーバとの間でデータをやり取りするための重要な手段である。フォームは、ローカル及び/又はリモートにおけるデータ収集を目的として、クライアントデバイスによって使用されることもある。
フォームは、通常は、フォームフィールド、フォームボタン、及びその他の構成要素を含む。例えば、フォームに含まれえるその他の構成要素として、テキストフィールドやパスワードフィールドなどの入力フィールドが挙げられる。フォーム生成の際は、伝送セキュリティを向上させるために、既定の名称を有する非表示フォームフィールドも生成されて特定のフォームに含められる。非表示フォームフィールドは、フォームを提示されたウェブページを訪問しているユーザには見えない不可視のフォーム要素である。したがって、ユーザは、非表示フィールドには何も内容を入力することができず、これが、非表示フィールドがときとして、非ユーザ入力情報をサブミット(提供)するために使用されるゆえんである。
従来、クライアントデバイスは、(例えば、ユーザによって訪問されているウェブページに関連付けられている)ユーザリクエストフォームを読み出し、そのフォームは、クライアントデバイスにインストールされたウェブブラウザによって提示され、ユーザは、そのフォームの入力フィールドにデータを入力することができる。ユーザは、フォームへの入力を完成した後、フォームサブミットボタンを選択し、すると、クライアントデバイスは、フォームに入力されたデータを、関係するウェブサーバにサブミットし、そこで、ウェブサーバは、サブミットされたフォームデータを更に処理することができる。しかしながら、従来の技術は、通常は、フォームデータが生身の人ユーザ(人間)によって完成されたものであるかどうかを決定することができない。フォームデータが人間ユーザによって完成及びサブミットされたことを保証することが望ましいとされる理由は、1つには、フォームがロボット又専用のコンピュータプログラムによって自動的に完成及び/又はサブミットされたものであるときは、スパム又は悪意あるフォーラムフラッドなどのマイナスの結果が生じえるからである。
サブミットされたフォームが人間ユーザによって完成されたものであることを検証する従来の技術は、1つには、フォームに含められた1つ以上の非表示フィールドを検証することによって実現される。例えば、非表示フォームフィールドは、名称と、値とを含む。クライアントデバイスによって(ユーザリクエストの結果として)フォームがリクエストされるたびに、サーバは、ランダムな文字を生成し、それをクライアントデバイスに送り、これは、クライアントデバイスに、そのランダム文字を非表示フォームフィールドの数値として使用させる。このように、サーバが、クライアントデバイスによってサブミットされたユーザ完成フォームを受信したときに、フォーム検証は、非表示フォームフィールドの値がサーバによって生成されたランダム文字に一致するかどうかを確認することによって実現される。
しかしながら、クライアントデバイスは、フォームを生成するのと同時に非表示フォームフィールドを生成するので、非表示フォームフィールドの名称は、事前に設定されており、したがって、フォームを求めるリクエストが出されるたびに生成される非表示フォームフィールドの名称は、常に同じである。したがって、クライアントデバイスによってフォームを求めるリクエストが複数回にわたって出されると、悪意ある自動完成プログラムは、分析を通じて非表示フォームフィールドの名称を決定することができ、したがって、これらのプログラムは、最終的に、フォームを認識してそれによってフォームの自動完成を実施することが可能になる。
以下の詳細な説明及び添付の図面において、本発明の様々な実施形態が開示される。
フォーム検証のためのシステムの一実施形態を示す図である。
フォーム検証のためのプロセスの一実施形態を示すフローチャートである。
フォーム検証のためのプロセスの一実施形態を示すフローチャートである。
フォーム検証のためのプロセスの一実施形態を示すフローチャートである。
フォーム検証のためのプロセスの一実施形態を示すフローチャートである。れる。
フォーム検証のシステムの一実施形態を示す図である。れる。
フォーム検証のシステムの一実施形態を示す図である。
本発明は、プロセス、装置、システム、合成物、コンピュータ読み取り可能なストレージ媒体に実装されたコンピュータプログラム製品、並びに/又は結合先のメモリに記憶された命令及び/若しくは結合先のメモリによって提供される命令を実行するように構成されるプロセッサなどのプロセッサのような、数々の形態で実現することができる。本明細書では、これらの実現形態、又は本発明がとりうるその他のあらゆる形態が、技術と称されるだろう。総じて、開示されたプロセスのステップの順序は、本発明の範囲内で変更されてよい。別途明記されない限り、タスクを実施するように構成されたものとして説明されるプロセッサ又はメモリなどのコンポーネントは、所定時にタスクを実施するように一時的に構成された汎用コンポーネントとして、又はタスクを実施するように製造された特殊コンポーネントとして実現されてよい。本明細書で使用される「プロセッサ」という用語は、コンピュータプログラム命令などのデータを処理するように構成される1つ以上のデバイス、回路、並びに/又は処理コアを言う。
本発明の原理を例示する添付の図面とともに、以下で、本発明の1つ以上の実施形態の詳細な説明が提供される。本発明は、このような実施形態との関わりのもとで説明されるが、いずれの実施形態にも限定されない。本発明の範囲は、特許請求の範囲によってのみ限定され、本発明は、数々の代替形態、変更形態、及び均等物を包含している。以下の説明では、本発明の完全な理解を与えるために、数々の具体的詳細が明記されている。これらの詳細は、例示を目的として提供されたものであり、本発明は、これらの詳細の一部又は全部を伴わずとも、特許請求の範囲にしたがって実施されえる。明瞭さを期するために、本発明に関係する技術分野で知られる技術要素は、本発明が不必要に不明瞭にされないように、詳細な説明を省略されている。
本出願は、数々の、汎用又は専用の、コンピュータシステム環境又は構成において使用することができる。例えば、パソコン、サーバコンピュータ、手持ち式のすなわち携帯式の機器、タブレット端末、マルチプロセッサデバイス、及び上記のデバイス若しくは機器のうちの任意を含む分散コンピューティング環境などを、使用することができる。
本出願は、例えばプログラムモジュールなどの、コンピュータによって実行されるコンピュータ実行可能コマンドを一般的背景として説明することができる。一般に、プログラムモジュールは、特定のタスクを実行する又は特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。本出願は、また、分散型コンピューティング環境でも実現することもできる。このような分散型コンピューティング環境では、通信ネットワークを通じて接続されたリモート処理機器によってタスクが実行される。分散型コンピューティング環境では、プログラムモジュールは、ストレージ機器を含むローカル又はリモートのコンピュータにおけるストレージ媒体上に配することができる。
フォーム検証の実施形態が、本明細書で説明される。様々な実施形態では、フォームを求めるユーザリクエストがサーバにおいて受信されたことに応答して、サーバによって第1のパラメータ及び第2のパラメータが生成される。例えば、ユーザリクエストは、フォームに関連付けられているウェブページにアクセスするためにウェブブラウザを使用しているユーザに関係付けられる。一部の実施形態では、第1のパラメータ及び第2のパラメータのそれぞれの値が、ランダムに生成される。少なくとも、フォームに関連付けられているデータと、第1のパラメータ及び第2のパラメータを含む第1のトリガメッセージとが、クライアントデバイスに伝送される。クライアントデバイスは、ユーザに提示されるフォームを生成するように構成される。第1のトリガメッセージは、第1のパラメータに基づいて、クライアントデバイスにおいて非表示フォームフィールドを生成させるように、及び第2のパラメータに基づいて、非表示フォームフィールドに対応する値を生成させるように構成される。第2のパラメータに基づいて決定される値は、クライアントデバイスに関連する値割り当て事象が検出された場合に、非表示フォームフィールドに対応する値として割り当てられる。値割り当て事象は、マウス移動の受信などの、クライアントデバイスに関係する人間との相互作用に関わる任意の事象/操作であるように構成される。非表示フォームフィールドと、該非表示フォームフィールドに対応する値とを含む完成されたフォームが、サーバにサブミットされる。サーバが、非表示フォームフィールドが第1のパラメータに対応すること、及び非表示フォームフィールドのサブミット値が第2のパラメータに対応することを確認した場合は、サブミットされたフォームデータは、有効性を認められ、サーバは、受信されたデータを引き続き処理してよい。サブミットされたフォームデータは、人間に関わる値割り当て事象の検出に応答して、正しい値、すなわち第2のパラメータに基づいた値が非表示フォームフィールドに対応する値として割り当てられたという理由で、人間ユーザによってサブミットされたものであると想定され、したがって、有効性を認められ、自動完成コンピュータプログラムがフォームデータを完成させようとした場合は、そのようなプログラムは、非表示フォームフィールドを学習していないだろう、及び/又は非表示フォームフィールドに対応する値は、フォームの完成に成功していないだろうと想定される。しかしながら、サーバが、非表示フォームフィールドが第1のパラメータに対応しないこと又は非表示フォームフィールドのサブミット値が第2のパラメータに対応しないことの、いずれか又は両方を決定したならば、サブミットされたデータは、人間ユーザによって完成されたものではないと想定され、したがって、データは、有効性を認められず、サーバは、受信されたデータを処理しなくてよい。
図1は、フォーム検証のためのシステムの一実施形態を示す図である。この例では、システム100は、デバイス102と、ネットワーク104と、検証サーバ106と、データベース108とを含む。ネットワーク104は、高速ネットワーク及び/又は電気通信ネットワークを含んでいてよい。
ユーザは、検証サーバ106に関連付けられているウェブサーバに対してフォームをリクエストするために、デバイス102を使用してよい。例えば、フォームは、ウェブサイトへのログイン又はオンラインフォーラムにおけるコメント投稿に関係付けられていてよい。デバイス102は、ラップトップとして示されているが、デバイス102のその他の例として、デスクトップコンピュータ、タブレット端末、モバイル機器、スマートフォン、及びその他の任意のタイプの計算機器が挙げられる。例えば、ユーザは、フォームに関連付けられている特定のウェブページにアクセスするために、ウェブブラウザ、又はデバイス102上で実行されるその他のアプリケーションを使用してフォームをリクエストしてよい。
フォームを求めるリクエストに応答して、検証サーバ106は、少なくとも、第1のパラメータ及び第2のパラメータを生成するように構成される。一部の実施形態では、検証サーバ106は、受信された各リクエスト用に、新しい第1のパラメータ及び新しい第2のパラメータを生成するように構成される。一部の実施形態では、検証サーバ106は、各受信されたリクエストと、該リクエスト用に生成された対応する第1のパラメータ及び第2のパラメータとの間の関係を、データベース108に記憶するように構成される。検証サーバ106は、第1のパラメータ及び第2のパラメータを含む第1のトリガメッセージをデバイス102に送信するように構成される。第1のトリガメッセージは、実行されたときに、少なくとも一部には第1のパラメータに基づいて、デバイス102において非表示フォームフィールドを生成させてフォームに追加させるように、及び少なくとも一部には第2のパラメータに基づいて、非表示フォームフィールドに対応する値を決定させるように構成される、コンピュータコードを含む。第1のトリガメッセージの受信に応答して、デバイス102は、第1のパラメータに基づいて、非表示フォームフィールドを生成するように、及び値割り当て事象の検出に応答して、第2のパラメータに基づいて非表示フォームフィールドに値を割り当てるように構成される。検証サーバ106は、フォームのサブミットに関連付けられているデータをデバイス102から受信するように構成される。検証サーバ106は、以下で詳しく説明されるように、受信されたデータが、(データベース108を使用して決定された、)リクエストされたフォームに関連付けられている第1のパラメータ及び第2のパラメータに対応するかどうかに基づいて、サブミットされたデータが、有効性を認められるものであるかどうかを決定するように構成される。
図2は、フォーム検証のためのプロセスの一実施形態を示すフローチャートである。一部の実施形態では、プロセス200は、システム100において実行に移される。
ステップ202では、クライアントデバイスに対してフォームを求めるリクエストの受信に応答して、第1のパラメータ及び第2のパラメータが生成される。例えば、ウェブサイトにアクセスするために、クライアントデバイスにインストールされたウェブブラウザを使用しているユーザは、フォームに関連付けられているウェブページに遭遇するだろう。ユーザは、上記ウェブページを訪問することを選択してよく、該選択を受けて、ウェブブラウザは、上記ウェブページに関連付けられている、フォームを含むデータを求めるリクエストを送信する。リクエストは、上記ウェブページに関連付けられているウェブサーバにおいて受信される。例えば、フォームは、登録フォーム、サインインフォーム、又はオンラインフォーラムに関連付けられているコメント投稿フォームであってよい。
一部の実施形態では、第1のパラメータ及び第2のパラメータは、ランダムに生成された2つの文字列のそれぞれを割り当てられていてよい。例えば、各文字列は、1つ以上の英数字文字を含んでいてよい。一部の実施形態では、情報のセキュリティを向上させるために及び盗用を防ぐために、これらのランダムに生成された文字列は、先ず、第1のパラメータ及び第2のパラメータにそれぞれ割り当てられる前に暗号化される。例えば、第1のパラメータ及び第2のパラメータにそれぞれ割り当てられる文字列は、任意の暗号化キー技術を使用して生成されたランダム暗号化キーによって暗号化される。一具体例では、クライアントデバイスからの、フォームを求めるリクエストの受信に応答して、サーバは、第1のパラメータ及び第2のパラメータにそれぞれ割り当てられる文字列、すなわち文字列1及び文字列2をランダムに生成する。これらの文字列は、暗号化文字列E(文字列1)及びE(文字列2)を個別に生成するために、ウェブサイト暗号化キー及び/又はタイムスタンプ情報を使用して暗号化されている。ウェブサイト暗号化キーは、ユーザが現時点で閲覧しているウェブサイトの一意の識別番号であってよい。タイムスタンプは、例えば、クライアントデバイスのオペレーティングシステムの現時刻であってよい。使用される暗号化技術の一例は、MD5(メッセージダイジェストアルゴリズム、ヴァージョン5)である。一部の実施形態では、暗号化の複雑性を高めるために、暗号化技術として、サーバによって実行されるPHP(ハイパーテキストプリプロセッサ)などのスクリプト言語を使用した自動定義暗号化技術が使用されてよい。サーバは、フォームを通じてサブミットされたデータを、記憶された第1のパラメータ及び第2のパラメータと後ほど比較することができるように、第1のパラメータ及び第2のパラメータを記憶するように構成される。
ステップ204では、第1のパラメータ及び第2のパラメータを含む第1のトリガメッセージがクライアントデバイスに送信され、第1のトリガメッセージは、少なくとも一部には第1のパラメータに基づいて、クライアントデバイスにおいて非表示フォームフィールドを生成させてフォームに追加させるように、及び少なくとも一部には第2のパラメータに基づいて、非表示フォームフィールドに対応する値を決定させるように構成される。サーバは、リクエストされたフォームに関連付けられているデータと、第1のトリガメッセージとを、クライアントデバイスに送信するように構成される。第1のトリガメッセージは、少なくとも、第1のパラメータ及び第2のパラメータを含む。サーバからのデータの受信に応答して、クライアントデバイス(又はクライアントデバイスにインストールされたウェブブラウザアプリケーション)は、受信されたデータに基づいてフォームを生成するように構成される。一部の実施形態では、第1のトリガメッセージは、実行されたときに、クライアントデバイス(又はクライアントデバイスにインストールされたウェブブラウザアプリケーション)に、非表示フォームフィールドを生成させてフォームに追加させる、命令及び/又はコンピュータコードを含む。非表示フォームフィールドは、フォームを提示されているユーザには見えない。非表示フォームフィールド及びそれに対応する値は、フォームがサーバにサブミットされるときに、フォームに入力されたその他のデータとともに、サーバにサブミットされる。非表示フォームフィールドは、名称と、値とを含む。一部の実施形態では、非表示フォームフィールドの値は、数値である。第1のトリガメッセージは、クライアントデバイス(又はクライアントデバイスにインストールされたウェブブラウザアプリケーション)に、第1のパラメータに基づいて非表示フォームフィールドの名称を生成させ、検出された値割り当て事象に応答して、第2のパラメータに基づいて決定された値を非表示フォームフィールドに割り当てさせる。一部の実施形態では、クライアントデバイスによる非表示フォームフィールドの生成は、非表示フォームフィールド生成機能の呼び出しに基づく。クライアントデバイスのフォームデータが、非表示フォームフィールドの内容を分析する目的でマルウェア(悪意あるソフトウェア)によって傍受されることがないように、サーバは、クライアントデバイスに、非表示フォームフィールド生成機能及びその他の実行可能コードに対して難読化処理すなわちコードの難読化を実施させるための、第1のトリガメッセージ命令を含んでいてよく、したがって、たとえもし、難読化されたコードが傍受されたとしても、傍受した側は、それを認識することができない。
一部の実施形態では、第1のパラメータに基づいて非表示フォームフィールドが生成された後、該非表示フォームフィールドは、当座の値を割り当てられる。次いで、値割り当て事象が検出されたときに、第2のパラメータに基づいて生成された検証文字列が、(事前に割り当てられた当座の値に取って代わるために、)非表示フォームフィールドの値として割り当てられる。検証文字列は、サーバによって生成されてクライアントデバイスに送信されてよい、又は検証文字列は、クライアントデバイスにおいて生成されてよい。値割り当て事象は、実在の人ユーザ(人間ユーザ)が、クライアントデバイスに関係する操作を実行するときにトリガされる事象(例えば、人間ユーザによって実施されてクライアントデバイスのインターフェースにおいて受信される人間とマシンとの相互作用)を言う。例えば、値割り当て事象は、マウス移動事象である。例えば、フォームを完成させるプロセスにおいて、人間ユーザは、クライアントデバイスのディスプレイインターフェース上でマウスのカーソルが動くようにマウスを操作する必要がある。したがって、このようなマウス移動事象をクライアントデバイスが検出したときは、この事象は、フォームを完成させているユーザが人間ユーザであることを表しており、したがって、第2のパラメータに基づいて決定された値が、非表示フォームフィールドに割り当てられる。一部の実施形態では、値割り当て事象と見なされる事象が、システムオペレータによって設定されてよい。したがって、たとえもし、第1のパラメータ及び第2のパラメータが、悪意ある自動フォーム完成プログラムによって取得されたとしても、このようなプログラムは、非表示フォームフィールドへの正しい値の割り当てを実現することができないだろう。値割り当て事象のその他の例としては、キーボード操作事象、(デバイスが入力デバイスとしてタッチ画面をサポートしているならば)タッチ画面操作、又は人間によって実行されるフォーム操作を自動完成プログラムによって実行されるフォーム操作と区別することができる任意のその他の事象が挙げられる。
一部の実施形態では、値割り当て事象の検出に応答して、非表示フォームフィールドの値に対応する当座の値に取って代わるために割り当てられる検証文字列が、第2のパラメータと同じものとして決定される。検証文字列が、第2のパラメータと同じであるならば、値割り当て事象の検出に応答して、第2のパラメータが、非表示フォームフィールドの値として割り当てられる。
一部の実施形態では、値割り当て事象の検出に応答して、非表示フォームフィールドの値に対応する当座の値に取って代わるために割り当てられる検証文字列が、暗号化技術及び第2のパラメータに基づいて決定される。例えば、第2のパラメータに基づいて検証文字列を生成するために使用される暗号化技術は、MD5であってよい。一部の実施形態では、サーバは、検証文字列の暗号化値を決定し、該検証文字列をクライアントデバイスに送信する。一部の実施形態では、第2のパラメータに基づいて検証文字列を決定するために使用される暗号化技術は、クライアントデバイスにおいて事前に選択されてよい、又はスクリプトによって動的に決定されてよい。例えば、実行されるスクリプト(例えばJavaScript(登録商標))は、選択された暗号化技術を、検証文字列を得るために第2のパラメータに対して実施させてよい。一部の実施形態では、検証文字列を生成するために、第2のパラメータ及び暗号化技術に追加して、ウェブサイト暗号化キー及びタイムスタンプなどのその他の情報も使用されてよい。
一部の実施形態では、サーバは、検証文字列を生成した後、その検証文字列を記憶する。サーバは、セッションに関係付けて検証文字列を記憶してよく、その検証文字列を有効期間に関係付けてよい。非表示フォームフィールドを追加されるべきフォームが、そのフォームがリクエストされてから有効期間が経過した後にサブミットされたならば、サーバは、フォームに関連付けられているサブミットされたデータを、有効性を認められないものであると自動的に決定する。
ステップ206では、フォームのサブミットに関連付けられているデータが受信される。フォームのその他のフィールドに対応する値が入力された後、フォームは、例えば、フォームに入力されたデータをサーバにサブミットするように構成された選択可能要素(「ボタン」)の選択によってサブミットされてよい。或いは、例えば、フォームは、自動フォームサブミットプロセスを通じてサブミットすることもできる。非表示フォームフィールドに関連付けられているデータもまた、フォームに入力されたその他の値とともにサブミットされる。
ステップ208では、フォームのサブミットに関連付けられているデータが、第1のパラメータに一致する非表示フォームフィールドと、第2のパラメータに対応する非表示フォームフィールドに対応するサブミット値とを含むかどうかが決定される。非表示フォームフィールドが第1のパラメータに一致し、非表示フォームフィールドに対応するサブミット値が第2のパラメータに対応する場合は、フォームのサブミットに関連付けられているデータは、有効性を認められるものであると決定される。
サーバは、非表示フォームフィールドを追加されたフォームを通じてサブミットされたデータを受信した後、先ず、非表示フォームフィールドが、サーバによって生成された第1のパラメータに一致するかどうかを決定する。次いで、サーバは、この非表示フォームフィールドに対応するサブミット値が、サーバによって生成された第2のランダムパラメータに対応するかどうかを確認する。非表示フォームフィールドの値として割り当てられた検証文字列が、第2のパラメータと同じである場合は、サーバは、非表示フォームフィールドに対応するサブミット値が、第2のパラメータと同じであるときに、非表示フォームフィールドに対応するその値を、第2のパラメータに対応していると決定する。非表示フォームフィールドの値として割り当てられた検証文字列が、暗号化技術及び第2のパラメータを使用して決定された場合は、サーバは、非表示フォームフィールドに対応するサブミット値が、復号化によって第2のパラメータに一致させることができるときに、すなわち第2のパラメータが、暗号化によって非表示フォームフィールドに対応するサブミット値に一致させることができるときに、非表示フォームフィールドに対応するサブミット値を、第2のパラメータに対応していると決定する。サーバは、フォーム読み出し・サブミットプロセスごとに新しい第1のパラメータ及び新しい第2のパラメータを生成するので、その都度、各読み出されるフォームに追加される非表示フォームフィールドの名称は更新され、該非表示フォームフィールドに対応する値も更新される。フォームを求める新しいリクエストごとに第1のパラメータ及び第2のパラメータを更新することは、自動完成プログラムがその都度非表示フォームフィールドの更新後の名称及びその更新後の値を学習することを困難にする。更に、第2のパラメータに基づいて決定される非表示フォームフィールドの正しい値は、クライアントデバイスに関係する人間に関わる操作に関連付けられている値割り当て動作の検出に応答して非表示フォームフィールドに割り当てられるようにトリガされるので、サーバが、第1のパラメータに一致する非表示フォームフィールドに対応するサブミット値が第2のパラメータに対応していないと決定したならば、フォームは、実在の人ユーザ(人間ユーザ)によって完成されたものではないと想定され、したがって、サブミットされたデータは、有効性を認められない。サーバが、サブミットされたデータを、有効性を認められないものであると決定したならば、サーバは、サブミットされたデータを引き続き処理することはない。しかしながら、サーバが、非表示フォームフィールドの名称が第1のパラメータに一致すること、及び非表示フォームフィールドに対応するサブミット値が第2のパラメータに対応することを決定したならば、フォームは、実在の人ユーザによって完成されたものであると想定され、したがって、サブミットされたデータは、有効性を認められる。サーバが、サブミットされたデータを、有効性を認められるものであると決定したならば、サーバは、サブミットされたデータを引き続き処理する。サブミットされたデータを処理する例としては、サーバによって記憶されているデータへのアクセス権をクライアントデバイスに付与すること、識別を実施すること、ログイン情報をクライアントデバイスに返すこと、及びクライアントデバイスに、サブミットされたデータをフォーラムに投稿させることなどが挙げられる。
図3は、フォーム検証のためのプロセスの一実施形態を示すフローチャートである。一部の実施形態では、プロセス300は、システム100において実行に移される。
プロセス300は、プロセス200と同様であるが、更なる第3のパラメータを含む。この第3のパラメータは、サーバによって生成され、クライアントデバイスにおいて使用されるための非表示フォームフィールド生成機能を呼び出すために使用される。
ステップ302では、クライアントデバイスからの、フォームを求めるリクエストの受信に応答して、第1のパラメータ、第2のパラメータ、及び第3のパラメータが生成される。一部の実施形態では、第1のパラメータ及び第2のパラメータは、プロセス200で説明されたのと同様な技術に基づいて生成される。一部の実施形態では、第3のパラメータは、第1のパラメータ及び第2のパラメータが生成されたのと同様なやり方で生成されてよい。例えば、値がランダムに生成され、一部の実施形態では、その値が暗号化技術を使用して暗号化されて、第3のパラメータとして割り当てられてよい。
ステップ304では、クライアントデバイスに、第3のパラメータを含む第2のトリガメッセージが送信され、該第2のトリガメッセージは、クライアントデバイスにおいて、非表示フォームフィールド生成機能に関連付けられている機能名称として第3のパラメータを使用させるように構成される。クライアントデバイス(又はクライアントデバイスにインストールされたウェブブラウザ)による非表示フォームフィールドの生成は、非表示フォームフィールド生成機能を呼び出すことによって実施される。一部の実施形態では、サーバは、非表示フォームフィールド生成機能の機能名称を定め、クライアントデバイス(又はそれに関連付けられているウェブブラウザ)に、非表示フォームフィールド生成機能の機能名称として第3のパラメータを使用させる。一部の実施形態では、サーバは、クライアントに、非表示フォームフィールド生成機能に対して難読化処理を実施させる。
ステップ306では、クライアントデバイスに、第1のパラメータ、第2のパラメータ、及び定義された変数を含む第1のトリガメッセージが送信され、該第1のトリガメッセージは、非表示フォームフィールド生成機能に、クライアントデバイスにおいて第3のパラメータ及び第1のパラメータを使用して非表示フォームフィールドを生成させるように、並びにフォームに非表示フォームフィールドを追加させるように、並びに非表示フォームフィールドに対応する当座の値として、定義された変数を割り当てさせるように、並びに少なくとも一部には第2のパラメータに基づいて、検証文字列を決定させるように構成される。
上述のように、フォームに関連付けられているデータは、第1のトリガメッセージとともにクライアントデバイスに送信される。フォームは、受信されたデータに基づいて、クライアントデバイスにおいて生成される。第1のトリガメッセージは、クライアントデバイスにおいて実行されたときに、第1のパラメータに基づいて、第1の非表示フォームフィールドの名称を割り当てさせる、及び値割り当て事象の検出に応答して、非表示フォームフィールドに対応する値に検証文字列を割り当てさせる、コンピュータコードを含んでいてよい。更に、非表示フォームフィールドは、フォームに追加される。一部の実施形態では、クライアントデバイスは、第3のランダムパラメータを使用して命名された非表示フォームフィールド生成機能を呼び出すように、及び第1のパラメータに基づいて決定された名称を持つ非表示フォームフィールドを生成するようにトリガされる。情報の傍受及び復号化を更に防ぐために、一部の実施形態では、サーバは、非表示フォームフィールドが生成された後に非表示フォームフィールドの当座の値として使用される変数を定義する。
ステップ308では、値割り当て事象の検出に応答して、非表示フォームフィールドに対応する当座の値が検証文字列に取って代わられる。最終的に、非表示フォームフィールドの当座の値は、第2のパラメータに基づいて決定される検証文字列に取って代わられる。非表示フォームフィールドの当座の値は、値割り当て事象の検出に応答して、第2のパラメータに基づいて決定される検証文字列に取って代わられる。上述のように、値割り当て事象は、人間ユーザに関係する対クライアントデバイスの操作/相互作用に関係付けられる任意の事象であるように構成される。
ステップ310では、随意として、クライアントデバイスに、追加非表示フィールドトリガメッセージが送信され、該追加非表示フィールドトリガメッセージは、複数の追加非表示フィールドを生成させてフォームに追加させるように構成される。一部の実施形態では、サーバは、追加非表示フィールドトリガメッセージをクライアントデバイスに送信する。追加非表示フィールドトリガメッセージは、クライアントデバイスにおいて実行されたときに、(検証に使用される、第1のパラメータ及び第2のパラメータに基づいて生成される非表示フォームフィールドではなく、)フォームを検証するために使用されない複数の追加非表示フィールドを生成させてフォームに追加させる、コンピュータコードを含む。このような追加非表示フィールドを追加する目的は、フォームを自動的に完成させようとするかもしれない悪意ある者を混乱させ、フォームのどの非表示フィールドが検証に使用されるのかわからないようにすることである。生成される追加非表示フィールドの値は、サーバによって検証目的で使用される非表示フォームフィールドと異なり、サーバによってランダムに決定されて追加非表示フィールドトリガメッセージに含められる割り当て文字列である。追加非表示フィールドに割り当てられる値は、クライアントデバイスによってランダムに生成されてもよい。サーバは、各特定のクライアントデバイスに送信されるデータ(例えば、第1のトリガメッセージ、第2のトリガメッセージ、第1のパラメータ、第2のパラメータ、第3のパラメータ、定義された変数、及び/又は追加非表示フィールドに割り当てられる文字列など)を記録しており、したがって、サーバは、クライアントデバイスから受信されたデータを、これらの維持されているデータと後ほど比較することができる。
ステップ312では、フォームのサブミットに関連付けられているデータが、第1のパラメータに一致する非表示フォームフィールドと、第2のパラメータに対応する非表示フォームフィールドに対応するサブミット値とを含むかどうかが決定される。非表示フォームフィールドが第1のパラメータに一致し、非表示フォームフィールドに対応するサブミット値が第2のパラメータに対応する場合は、制御は、ステップ314に引き渡され、フォームのサブミットに関連付けられているデータは、有効性を認められるものであると決定される。そうでない場合は、制御は、ステップ316に引き渡され、フォームのサブミットに関連付けられているデータは、有効性を認められないものであると決定される。
クライアントデバイスによってサブミットされるフォームは、フォーム検証に使用される非表示フォームフィールドと、フォーム検証に使用されない追加非表示フィールドとを含み、しかしながら、サーバは、第1のパラメータを生成しているので、サブミットされたデータのなかで第1のパラメータに対応する名称を持つ非表示フィールド、すなわち非表示フォームフィールドをどのように探すか、及びこの決定された非表示フォームフィールドを検証目的でどのように使用するかを知っている。プロセス200について説明されたのと同様に、サーバが、第1のパラメータに一致する非表示フォームフィールドに対応するサブミット値が第2のパラメータに対応しないと決定したならば、フォームは、人間ユーザによって完成されたものではないと想定され、したがって、サブミットされたデータは、有効性を認められない。サーバが、サブミットされたデータを、有効性を認められないものであると決定したならば、サーバは、サブミットされたデータを、引き続き処理することはない。しかしながら、サーバが、非表示フォームフィールドの名称が第1のパラメータに一致すること、及び非表示フォームフィールドに対応するサブミット値が第2のパラメータに対応することを決定したならば、フォームは、人間ユーザによって完成されたものであると想定され、したがって、サブミットされたデータは、有効性を認められる。サーバが、サブミットされたデータを、有効性を認められるものであると決定したならば、サーバは、サブミットされたデータを引き続き処理する。
図4は、フォーム検証のためのプロセスの一実施形態を示すフローチャートである。一部の実施形態では、プロセス400は、システム100において、例えばデバイス102において実行に移される。
ステップ402では、フォームを求めるリクエストが生成され、サーバに送信される。例えば、フォームを求めるリクエストは、ユーザがクライアントデバイスにおいてフォームを含むウェブページにアクセスすることに応答して生成されてよい。
ステップ404では、サーバから第1のトリガメッセージが受信され、第1のトリガメッセージは、第1のパラメータ及び第2のパラメータを含む。第1のトリガメッセージ及び第2のトリガメッセージは、クライアントデバイスにおいて受信される。一部の実施形態では、第1のトリガメッセージは、定義された変数も含む。一部の実施形態では、第3のパラメータを含む第2のトリガメッセージも、サーバから受信される。
ステップ406では、非表示フォームフィールドが、第1のトリガメッセージに基づいて生成され、非表示フォームフィールドに関連付けられている名称が、第1のパラメータに基づいて決定され、非表示フォームフィールドに対応する値が、第2のパラメータに基づいて決定される。第1のトリガメッセージは、第1のパラメータに基づいて、非表示フォームフィールドを決定させるように、及び第2のパラメータに基づいて、非表示フォームフィールドに対応する値を決定させるように構成された、コンピュータコードを含む。一部の実施形態では、非表示フォームフィールド生成機能の名称が、第3のパラメータに基づいて決定される。一部の実施形態では、定義された変数は、当座の値として非表示フォームフィールドに割り当てられる。一部の実施形態では、第2のパラメータに基づいて決定された検証文字列が、サーバから受信されている、又はクライアントデバイスにおいて生成されている。検証文字列は、クライアントデバイスにおける値割り当て事象の検出に応答して、非表示フォームフィールドの当座の値に取って代わるためのものである。
ステップ408では、値割り当て事象の検出に応答して、非表示フォームフィールドに対応する当座の値に取って代わらせるために、検証文字列が使用される。検証文字列は、第2のパラメータに基づいて決定される。上述のように、値割り当て事象は、例えば、マウスの移動又はキーワードからのキーの入力などの、クライアントデバイスにおいて受信された実在の人(人間)ユーザに関わる操作に関係付けられる任意の事象として構成されてよい。
ステップ410では、フォームサブミット動作の受信に応答して、フォームのサブミットに関連付けられているデータがサーバに送信される。例えば、フォームサブミット動作は、ウェブページにおいてフォームとともに提示されるボタンをユーザが選択することに関係付けられてよい。サーバは、フォームを通じてサブミットされたデータを、少なくとも一部には、サブミットされた名称を含むデータ及び非表示フォームフィールドの値を第1のパラメータ及び第2のパラメータと比較することに基づいて検証する。サーバが、サブミットされたデータを、有効性を認められるものであると決定したならば、サーバは、例えば、保護された情報へのアクセス権をクライアントデバイスに付与することに関連付けられているデータなどの更なるデータを、クライアントデバイスに送信してよい。
図5は、フォーム検証のためのプロセスの一実施形態を示すフローチャートである。一部の実施形態では、プロセス500は、システム100において実行に移される。
ステップ502では、フォームを求めるリクエストが、クライアントデバイスにおいて生成されてサーバに送信される。
ステップ504では、フォームを求めるリクエストの受信に応答して、サーバが、第1のパラメータ、第2のパラメータ、及び第3のパラメータを生成する。
ステップ506では、サーバによって、クライアントデバイスに、第1のトリガメッセージ及び第2のトリガメッセージが送信され、第1のトリガメッセージは、第1のパラメータ、第2のパラメータ、及び定義された変数を含み、第2のトリガメッセージは、第3のパラメータを含む。
ステップ508では、クライアントデバイスによって、非表示フォームフィールド生成機能の機能名称として第3のパラメータが使用される。
ステップ510では、非表示フォームフィールドを生成するために、クライアントデバイスによって、第3のパラメータを使用して非表示フォームフィールド生成機能が呼び出される。非表示フォームフィールドに関係付けられる名称は、第1のパラメータを含み、非表示フォームフィールドに対応する当座の値は、定義された変数を含む。
ステップ512では、値割り当て事象の検出に応答して、クライアントデバイスは、非表示フォームフィールドに対応する当座の値に取って代わらせるために、検証文字列を割り当てる。検証文字列は、第2のパラメータに基づいて決定される。
ステップ514では、随意として、サーバによって、追加非表示フィールドトリガメッセージがクライアントデバイスに送信される。追加非表示フィールドトリガメッセージは、複数の追加非表示フィールドを生成させてフォームに追加させるように構成される。
ステップ516では、クライアントデバイスにおいて受信されたフォームサブミット動作に応答して、フォームのサブミットに関連付けられているデータが、クライアントデバイスによってサーバに送信される。
ステップ518では、フォームのサブミットに関連付けられているデータが、第1のパラメータに一致する非表示フォームフィールドと、第2のパラメータに対応する非表示フォームフィールドに対応するサブミット値とを含むかどうかが、サーバによって決定される。
上述された様々なプロセス実施形態に関しては、簡単にするために、全て、一連の行為の組み合わせとして提示されている。しかしながら、本出願にしたがうと、一部のステップは、その他の順序で又は同時的に実行されてよいものがあるので、当業者ならば、本出願が、説明された行為の順序に限定されないことがわかっているべきである。
図6は、フォーム検証のシステムの一実施形態を示す図である。この例では、システム600は、生成要素601と、第1のトリガ要素602と、検証要素603とを含む。一部の実施形態では、システム600は、ウェブサーバに組み込まれていてよい、又は独立した実体としてウェブサーバに接続されていてよい。
要素は、1つ以上の汎用プロセッサ上で実行されるソフトウェアコンポーネントとして、又はプログラマブルロジックデバイス及び/若しくは特定の機能を実施するように設計された特殊用途向け集積回路などのハードウェアとして、又はそれらの組み合わせとして実装することができる。一部の実施形態では、要素は、本発明の実施形態で説明される方法を(パソコン、サーバ、ネットワーク機器などの)計算装置に実行させるための幾つかの命令を含み尚且つ(光ディスク、フラッシュストレージデバイス、モバイルハードディスクなどの)不揮発性のストレージ媒体に記憶させることができるソフトウェア製品の形で具現化することができる。要素は、1つのデバイスに実装されてよい、又は複数のデバイスに分散されてよい。
生成要素601は、クライアントデバイスから受信された、フォームを求めるリクエストに応答して、第1のランダムパラメータ及び第2のランダムパラメータを生成するように構成される。一部の実施形態では、第1のパラメータ及び第2のパラメータは、サーバによってランダムに生成される割り当て値である。一部の実施形態では、生成要素601は、第1のパラメータ用に及び第2のパラメータ用にそれぞれランダムに生成された各値を暗号化するように構成される。一例では、第1のパラメータ及び第2のパラメータを暗号化するために使用される暗号のタイプが、事前に決定されていてよい。別の例では、使用される暗号のタイプが、サーバで実行されるコンピュータプログラムに基づいて自動的に決定されていてよい。
第1のトリガ要素602は、第1のパラメータ及び第2のパラメータを含む第1のトリガメッセージをクライアントデバイスに送信するように構成される。クライアントデバイスは、受信された第1のトリガメッセージに基づいて、フォームに追加される非表示フォームフィールドを含むフォームを生成するように構成される。非表示フォームフィールドの名称は、第1のパラメータに基づいて決定される。一部の実施形態では、第1のトリガ要素602、生成要素601、又はクライアントデバイスによって、第2のパラメータに基づいて、検証文字列も生成される。非表示フォームフィールドが生成された後、非表示フォームフィールドに対応する値として、先ず、当座の値が割り当てられる。検証文字列は、クライアントデバイスにおいて検出される値割り当て事象に応答して、最終的に、非表示フォームフィールドに事前に割り当てられた当座の値に取って代わるために使用される。
検証要素603は、フォームのサブミットに関連付けられているデータを受信及び検証するように構成される。検証要素603は、サブミットされたデータから、第1のパラメータに名称が一致する非表示フィールド(非表示フォームフィールド)を決定するように、及び該フィールドに関連付けられているサブミット値が第2のパラメータに一致するかどうかを決定するように構成される。非表示フォームフィールドに割り当てられた検証文字列が、第2のパラメータと同じである場合は、検証要素603は、非表示フォームフィールドに対応するサブミット値が、第2のパラメータと同じであるかどうかを決定するように構成される。非表示フォームフィールドに割り当てられた検証文字列が、少なくとも第2のパラメータを暗号化したものであると決定された場合は、検証要素603は、非表示フォームフィールドに対応するサブミット値が、少なくとも第2のパラメータを暗号化したものと同じであるかどうかを決定するように構成される。検証要素603が、サブミットされたデータからの非表示フィールドであって第1のパラメータに名称が一致する非表示フィールド(非表示フォームフィールド)と、該フィールドに関連付けられているサブミット値とが、第2のパラメータに一致すると決定したならば、検証要素603は、サブミットされたデータを、有効性を認められるものであると決定し、データの処理に進んでよい。そうでない場合は、検証要素603は、サブミットされたデータを、有効性を認められないものであると決定し、データの処理に進まなくてよい。
図7は、フォーム検証のシステムの一実施形態を示す図である。この例では、システム700は、生成要素701と、第2のトリガ要素702と、第1のトリガ要素703と、第3のトリガ要素704と、検証要素705とを含む。一部の実施形態では、システム700は、ウェブサーバに組み込まれていてよい、又は独立した実体としてウェブサーバに接続されていてよい。
要素は、1つ以上の汎用プロセッサ上で実行されるソフトウェアコンポーネントとして、又はプログラマブルロジックデバイス及び/若しくは特定の機能を実施するように設計された特殊用途向け集積回路などのハードウェアとして、又はそれらの組み合わせとして実装することができる。一部の実施形態では、要素は、本発明の実施形態で説明される方法を(パソコン、サーバ、ネットワーク機器などの)計算装置に実行させるための幾つかの命令を含み尚且つ(光ディスク、フラッシュストレージデバイス、モバイルハードディスクなどの)不揮発性のストレージ媒体に記憶させることができるソフトウェア製品の形で具現化することができる。要素は、1つのデバイスに実装されてよい、又は複数のデバイスに分散されてよい。
生成要素701は、クライアントデバイスから受信された、フォームを求めるリクエストに応答して、第1のランダムパラメータ、第2のランダムパラメータ、及び第3のパラメータを生成するように構成される。
第2のトリガ要素702は、第2のトリガメッセージをクライアントデバイスに送信するように構成される。第2のトリガメッセージは、第3のパラメータを含む。第2のトリガメッセージは、クライアントデバイスに、非表示フォームフィールド生成機能の機能名称として第3のランダムパラメータを使用させるように構成される。一部の実施形態では、第2のトリガメッセージは、更に、クライアントデバイスに、非表示フォームフィールド生成機能に対して難読化処理を実施させるように構成される。
第1のトリガ要素703は、第1のパラメータ及び第2のパラメータを含む第1のトリガメッセージをクライアントデバイスに送信するように構成される。
一部の実施形態では、第1のトリガメッセージは、更に、定義された変数を含む。クライアントデバイスは、受信された第1のトリガメッセージに基づいて、フォームに追加される非表示フォームフィールドを含むフォームを生成するように構成される。非表示フォームフィールドは、第3のパラメータに関連付けられている機能名称に関連付けられている非表示フォームフィールド生成機能を使用して生成されてよい。非表示フォームフィールドの名称は、第1のパラメータに基づいて決定される。一部の実施形態では、システム700又はクライアントデバイスによって、第2のパラメータに基づいて検証文字列も生成される。非表示フォームフィールドが生成された後、非表示フォームフィールドに対応する値として、先ず、当座の値が割り当てられる。一部の実施形態では、当座の値は、第1のトリガ要素703によって送信された、定義された変数である。検証文字列は、クライアントデバイスにおいて検出される値割り当て事象に応答して、最終的に、非表示フォームフィールドに事前に割り当てられた当座の値に取って代わるために使用される。
第3のトリガ要素704は、追加非表示フィールドトリガメッセージをクライアントデバイスに送信するように構成される。追加非表示フィールドトリガメッセージは、複数の追加非表示フィールドを生成させてフォームに追加させるように構成される。
検証要素705は、フォームのサブミットに関連付けられているデータを受信及び検証するように構成される。検証要素705は、第1のパラメータに一致する名称に関連付けられている非表示フィールドを認識することに基づいて、検証を実施するために使用されるサブミットされたデータのなかの正しい非表示フィールド、すなわち非表示フォームフィールドを識別するように構成される。このように、悪意ある自動フォーム完成プログラムと異なり、検証要素705は、追加非表示フィールドトリガメッセージに基づいて生成されるような複数の非表示フィールドの存在に混乱することはない。
非表示フォームフィールドに割り当てられた検証文字列が、第2のパラメータと同じである場合は、検証要素705は、非表示フォームフィールドに対応するサブミット値が、第2のパラメータと同じであるかどうかを決定するように構成される。非表示フォームフィールドに割り当てられた検証文字列が、少なくとも第2のパラメータを暗号化したものであると決定された場合は、検証要素705は、非表示フォームフィールドに対応するサブミット値が、少なくとも第2のパラメータを暗号化したものと同じであるかどうかを決定するように構成される。検証要素705が、サブミットされたデータからの非表示フィールドであって第1のパラメータに名称が一致する非表示フィールド(非表示フォームフィールド)と、該フィールドに関連付けられているサブミット値とが、第2のパラメータに一致すると決定したならば、検証要素705は、サブミットされたデータを、有効性を認められるものであると決定し、データの処理に進んでよい。そうでない場合は、検証要素705は、サブミットされたデータを、有効性を認められないものであると決定し、データの処理に進まなくてよい。
本明細書に含まれる実施形態は、進行的に説明されており、各実施形態の説明は、その他の実施形態との相違箇所に焦点を当てており、その説明は、各実施形態の同一の又は類似の部分を相互に参照されてよい。システムタイプの実施形態に関しては、それらがプロセス実施形態と基本的に同様であるゆえに、それらの説明は比較的単純である。関連箇所については、方法実施形態における一部の説明を参照せよ。
最後に、本文書では、「第1の」及び「第2の」などの関係を示す用語が、或る実体又は動作と別の実体又は動作とを区別するためにのみ使用され、これらの実体間又は動作間には、何らかの実際の関係又は順序があることが必然とされることも示唆されることもないことが、説明されるべきである。更に、「含む」又は「内包する」という用語、又はこれらの別形は、非排他的な意味で捉えられる。したがって、一連の要素を含むプロセス、方法、物体、又は機器は、それらの要素を含むのみならず、明示されていないその他の要素、又はこのようなプロセス、方法、物体、若しくは機器に本来備わっている要素も含む。更なる制限がなければ、「a(n)……を含む」という表現によって限定される要素について、該要素を含むプロセス、方法、物体、又は機器のなかに同一要素が追加で存在することは排除されない。
説明の便宜上、上記のシステムを説明するときは、各機能が個別の要素として説明されている。もちろん、本出願を実現する際は、様々な要素の機能が同じ又は複数のソフトウェア構成及び/又はハードウェア構成のなかで実現されてよい。
上記の実施形態に関する説明からわかるように、当業者ならば、本出願が、必要な汎用ハードウェアプラットフォームの形態をソフトウェアの形態に加えたものを活用して実現可能であることを、はっきり理解することができる。この理解に基づいて、本出願の技術的提案は、本質的にであれ、又は先行技術に寄与する部分に関してであれ、ソフトウェア製品の形で具現化することができる。これらのコンピュータソフトウェア製品は、本出願の実施形態又は本出願の実施形態の一部において説明された方法を一連のコンピュータ機器(パソコン、サーバ、又はネットワーク機器などでありえる)に実行させるために使用される特定の数の命令を含む、例えばROM/RAM、ディスケット、及びコンパクトディスクなどのストレージ媒体に記憶させることができる。
本文書は、本出願の原理及び実施形態を開設するために、具体例を用いてきた。上記の実施形態の説明は、本開示の方法及びその核となる概念の理解を助けるためのものにすぎない。更に、当業者ならば、本開示の概念にしたがって、具体的適用及び適用範囲に対して変更を加えることができる。以上をまとめると、本説明の内容は、本出願を制限するものと理解されてはならない。
以上の実施形態は、理解を明瞭にする目的で幾らか詳細に説明されてきたが、本発明は、提供された詳細に限定されない。本発明を実現するには、数々の代替的手法がある。開示された実施形態は、例示的なものであり、限定的なものではない。

Claims (21)

  1. フォーム検証のためのシステムであって、
    1または複数のプロセッサであって、
    クライアントデバイスからの、フォームを求める要求に応答して、第1のパラメータ及び第2のパラメータを生成し、
    前記第1のパラメータ及び前記第2のパラメータを含む第1のトリガメッセージを前記クライアントデバイスに送信し、前記第1のトリガメッセージは、少なくとも一部には前記第1のパラメータに基づいて、前記クライアントデバイスにおいて非表示フォームフィールドを生成させて前記フォームに追加させるように、及び少なくとも一部には前記第2のパラメータに基づいて、前記非表示フォームフィールドに対応する値を生成させるように構成され、
    前記フォームのサブミットに関連付けられているデータを受信し、
    前記フォームのサブミットに関連付けられている前記データが、前記第1のパラメータに一致する前記非表示フォームフィールドと、前記第2のパラメータに対応する前記非表示フォームフィールドに対応するサブミット値とを含むかどうかを決定し、前記非表示フォームフィールドが前記第1のパラメータに一致し、前記非表示フォームフィールドに対応する前記サブミット値が前記第2のパラメータに対応する場合に、前記フォームのサブミットに関連付けられている前記データを、有効性を認められるものであると決定するように構成されている、1または複数のプロセッサと、
    前記1または複数のプロセッサに接続され、前記1または複数のプロセッサに命令を提供するように構成されている1または複数のメモリと、
    を備える、システム。
  2. 請求項1に記載のシステムであって、
    前記第1のパラメータ及び前記第2のパラメータの少なくとも1つは、ランダムに生成される、システム。
  3. 請求項1に記載のシステムであって、
    前記1または複数のプロセッサは、更に、
    第3のパラメータを生成し、
    前記第3のパラメータを含む第2のトリガメッセージを前記クライアントデバイスに送信するように構成され、前記第2のトリガメッセージは、前記クライアントデバイスにおいて、非表示フォームフィールド生成機能に関連付けられている機能名称として前記第3のパラメータを使用させるように構成されている、システム。
  4. 請求項1に記載のシステムであって、
    検証文字列は、前記第2のパラメータに基づいて決定されるように構成されている、システム。
  5. 請求項4に記載のシステムであって、
    前記1または複数のプロセッサは、更に、定義された変数を生成するように構成され、前記定義された変数は、前記第1のトリガメッセージに含められ、前記定義された変数は、前記非表示フォームフィールドに対応する当座の値として割り当てられるように構成されている、システム。
  6. 請求項5に記載のシステムであって、
    前記1または複数のプロセッサは、更に、前記クライアントデバイスによる値割り当て事象の検出に応答して、前記非表示フォームフィールドに対応する前記当座の値を前記検証文字列に取って代わらせるように構成されている、システム。
  7. 請求項6に記載のシステムであって、
    前記値割り当て事象は、前記クライアントデバイスに関係する人間に関わる操作に関連付けられている、システム。
  8. 請求項6に記載のシステムであって、
    前記値割り当て事象は、マウス移動、キーボード操作、及びタッチ画面操作のうちの1つ以上を含む、システム。
  9. 請求項1に記載のシステムであって、
    前記1または複数のプロセッサは、更に、追加非表示フィールドトリガメッセージを送信するように構成され、前記追加非表示フィールドトリガメッセージは、複数の追加非表示フィールドを生成させて前記フォームに追加させるように構成されている、システム。
  10. 請求項1に記載のシステムであって、
    前記フォームのサブミットに関連付けられている前記データが、前記第1のパラメータに一致する前記非表示フォームフィールドを含むか否かを決定することは、前記非表示フォームフィールドの名称が前記第1のパラメータに一致するか否かを決定することを含む、システム。
  11. サーバコンピュータによって実行される、フォーム検証のための方法であって、
    ライアントデバイスからの、フォームを求める要求に応答して、第1のパラメータ及び第2のパラメータを生成すること、
    前記第1のパラメータ及び前記第2のパラメータを含む第1のトリガメッセージを前記クライアントデバイスに送信すること、前記第1のトリガメッセージは、少なくとも一部には前記第1のパラメータに基づいて、前記クライアントデバイスにおいて非表示フォームフィールドを生成させて前記フォームに追加させるように、及び少なくとも一部には前記第2のパラメータに基づいて、前記非表示フォームフィールドに対応する値を生成させるように構成され、
    前記フォームのサブミットに関連付けられているデータを受信すること、
    前記フォームのサブミットに関連付けられている前記データが、前記第1のパラメータに一致する前記非表示フォームフィールドと、前記第2のパラメータに対応する前記非表示フォームフィールドに対応するサブミット値とを含むかどうかを決定し、前記非表示フォームフィールドが前記第1のパラメータに一致し、前記非表示フォームフィールドに対応する前記サブミット値が前記第2のパラメータに対応する場合に、前記フォームのサブミットに関連付けられている前記データを、有効性を認められるものであると決定すること、
    を備える方法。
  12. 請求項11に記載の方法であって、
    前記第1のパラメータ及び前記第2のパラメータの少なくとも1つは、ランダムに生成される、方法。
  13. 請求項11に記載の方法であって、更に、
    第3のパラメータを生成すること、
    前記第3のパラメータを含む第2のトリガメッセージを前記クライアントデバイスに送信することを備え、前記第2のトリガメッセージは、前記クライアントデバイスにおいて、非表示フォームフィールド生成機能に関連付けられている機能名称として前記第3のパラメータを使用させるように構成されている、方法。
  14. 請求項11に記載の方法であって、
    検証文字列は、前記第2のパラメータに基づいて決定されるように構成されている、方法。
  15. 請求項14に記載の方法であって、更に、
    定義された変数を生成することを備え、前記定義された変数は、前記第1のトリガメッセージに含められ、前記定義された変数は、前記非表示フォームフィールドに対応する当座の値として割り当てられるように構成されている、方法。
  16. 請求項15に記載の方法であって、更に、
    前記クライアントデバイスによる値割り当て事象の検出に応答して、前記非表示フォームフィールドに対応する前記当座の値を前記検証文字列に取って代わらせることを備える方法。
  17. 請求項16に記載の方法であって、
    前記値割り当て事象は、前記クライアントデバイスに関係する人間に関わる操作に関連付けられている、方法。
  18. 請求項11に記載の方法であって、更に、
    追加非表示フィールドトリガメッセージを送信することを備え、前記追加非表示フィールドトリガメッセージは、複数の追加非表示フィールドを生成させて前記フォームに追加させるように構成されている、方法。
  19. フォーム検証のためのデバイスであって、
    1または複数のプロセッサであって、
    フォームを求める要求を生成してサーバに送信し、
    第1のパラメータ及び第2のパラメータを含む第1のトリガメッセージを前記サーバから受信し、
    少なくとも一部には前記第1のトリガメッセージに基づいて、非表示フォームフィールドを生成し、前記非表示フォームフィールドに関連付けられている名称は、前記第1のパラメータに基づいて決定され、前記非表示フォームフィールドに対応する値は、少なくとも一部には前記第2のパラメータに基づいて決定され、
    値割り当て事象の検出に応答して、前記非表示フォームフィールドに対応する当座の値を検証文字列に取って代わらせ、前記検証文字列は、前記第2のパラメータに基づいて決定され、
    フォームサブミット動作の受信に応答して、前記フォームのサブミットに関連付けられているデータを前記サーバに送信するように構成されている1または複数のプロセッサと、
    前記1または複数のプロセッサに接続され、前記1または複数のプロセッサに命令を提供するように構成されている1または複数のメモリと、
    を備える、デバイス。
  20. 請求項19に記載のデバイスであって、
    前記1または複数のプロセッサは、更に、定義された変数を受信するように構成され、前記非表示フォームフィールドに対応する前記当座の値は、前記定義された変数を含む、デバイス。
  21. 請求項19に記載のデバイスであって、
    前記値割り当て事象は、前記デバイスに関係する人間に関わる操作に関連付けられている、デバイス。
JP2014561112A 2012-03-08 2013-03-07 フォームに関係する検証 Active JP5868529B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
CN201210059741.8A CN103312664B (zh) 2012-03-08 2012-03-08 表单验证方法、装置和系统
CN201210059741.8 2012-03-08
US13/787,259 US9444910B2 (en) 2012-03-08 2013-03-06 Validation associated with a form
US13/787,259 2013-03-06
PCT/US2013/029631 WO2013134512A1 (en) 2012-03-08 2013-03-07 Validation associated with a form

Publications (2)

Publication Number Publication Date
JP2015511038A JP2015511038A (ja) 2015-04-13
JP5868529B2 true JP5868529B2 (ja) 2016-02-24

Family

ID=49115050

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014561112A Active JP5868529B2 (ja) 2012-03-08 2013-03-07 フォームに関係する検証

Country Status (6)

Country Link
US (2) US9444910B2 (ja)
EP (1) EP2823431B1 (ja)
JP (1) JP5868529B2 (ja)
CN (2) CN103312664B (ja)
TW (1) TWI587679B (ja)
WO (1) WO2013134512A1 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103501304B (zh) * 2013-10-12 2017-01-25 深信服网络科技(深圳)有限公司 控制web系统越权访问的方法及装置
US9411958B2 (en) * 2014-05-23 2016-08-09 Shape Security, Inc. Polymorphic treatment of data entered at clients
CN104486342A (zh) * 2014-12-19 2015-04-01 山东中创软件商用中间件股份有限公司 一种隐藏表单防护方法、装置、服务器和网购平台
US20160292143A1 (en) * 2015-04-01 2016-10-06 RTO Benefits, LLC System and method for automated online wizard generation
CN105592060B (zh) * 2015-10-26 2018-11-09 新华三技术有限公司 一种密码生成方法及设备
CN106921645B (zh) * 2016-06-28 2021-04-20 创新先进技术有限公司 信息发布方法、客户端及服务端
CN106161466A (zh) * 2016-08-30 2016-11-23 迈普通信技术股份有限公司 Web服务器及表单提交安全交互方法
US10063533B2 (en) * 2016-11-28 2018-08-28 International Business Machines Corporation Protecting a web server against an unauthorized client application
CN106657310B (zh) * 2016-12-13 2020-04-07 北京锐安科技有限公司 表单的提交方法及装置
US11379530B2 (en) 2017-01-31 2022-07-05 Splunk Inc. Leveraging references values in inverted indexes to retrieve associated event records comprising raw machine data
US10474674B2 (en) * 2017-01-31 2019-11-12 Splunk Inc. Using an inverted index in a pipelined search query to determine a set of event data that is further limited by filtering and/or processing of subsequent query pipestages
CN108804316A (zh) * 2018-05-24 2018-11-13 郑州云海信息技术有限公司 一种测试脚本程序标准化的检验方法及系统
CN111078206B (zh) * 2019-11-25 2023-03-24 贝壳技术有限公司 表单提交方法及系统

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7284193B1 (en) * 1998-12-31 2007-10-16 Microsoft Corporation Page object model
US7934149B1 (en) * 1999-09-30 2011-04-26 Instantis, Inc. Automated creation and maintenance of programs to process internet form related submissions
JP2002073551A (ja) 2000-08-26 2002-03-12 Sekiya Yamashita フレームを利用したインターネット情報保管システム
US20020178187A1 (en) * 2000-12-20 2002-11-28 Rasmussen Brett D. Electronically signed HTML forms
US6874120B2 (en) 2001-04-05 2005-03-29 International Business Machines Corporation Method, system, and product for efficient retrieval of information related to data input into a data entry form from the data entry form
JP2004334859A (ja) 2003-04-14 2004-11-25 Matsushita Electric Ind Co Ltd 異なる複数のオペレータによって使用される情報処理装置、その方法、及びプログラム
JP2007272574A (ja) 2006-03-31 2007-10-18 Nec Corp 掲示板システムおよびその不正投稿防止方法
US9130974B2 (en) * 2007-04-18 2015-09-08 Mcafee, Inc. System and method for limiting spyware activity
CN101431413B (zh) * 2007-11-08 2012-04-25 华为技术有限公司 进行认证的方法、系统、服务器及终端
CN101431410B (zh) * 2007-11-09 2011-11-30 康佳集团股份有限公司 一种网络游戏客户端与服务器集群的认证方法
US8219687B2 (en) 2008-01-04 2012-07-10 International Business Machines Corporation Implementing browser based hypertext transfer protocol session storage
WO2009102114A2 (en) * 2008-02-11 2009-08-20 Lg Electronics Inc. Terminal and method for identifying contents
CN101946264B (zh) * 2008-02-19 2012-12-05 日本电气株式会社 模式验证设备和模式验证方法
CN101482820A (zh) * 2009-02-13 2009-07-15 山东浪潮齐鲁软件产业股份有限公司 一种防止页面重复提交的方法
US9507870B2 (en) * 2009-05-05 2016-11-29 Suboti, Llc System, method and computer readable medium for binding authored content to the events used to generate the content
US9336191B2 (en) * 2009-05-05 2016-05-10 Suboti, Llc System, method and computer readable medium for recording authoring events with web page content
US9105027B2 (en) 2009-05-15 2015-08-11 Visa International Service Association Verification of portable consumer device for secure services
WO2011057007A2 (en) * 2009-11-04 2011-05-12 Visa International Service Association Verification of portable consumer devices for 3-d secure services
US20100318889A1 (en) * 2009-06-12 2010-12-16 Microsoft Corporation Automatic Insertion of Data from Web Forms into Documents
CN101924734A (zh) * 2009-06-15 2010-12-22 北京华智大为科技有限公司 一种基于Web表单的身份认证方法及认证装置
US20100328074A1 (en) 2009-06-30 2010-12-30 Johnson Erik J Human presence detection techniques
US8539224B2 (en) * 2009-11-05 2013-09-17 International Business Machines Corporation Obscuring form data through obfuscation
CN102238150A (zh) * 2010-05-06 2011-11-09 阿里巴巴集团控股有限公司 表单注册方法及服务器
US9021586B2 (en) * 2010-07-20 2015-04-28 At&T Intellectual Property I, L.P. Apparatus and methods for preventing cross-site request forgery
US9401807B2 (en) * 2011-02-03 2016-07-26 Hewlett Packard Enterprise Development Lp Processing non-editable fields in web pages

Also Published As

Publication number Publication date
EP2823431B1 (en) 2019-01-23
US9444910B2 (en) 2016-09-13
CN103312664A (zh) 2013-09-18
CN107451472B (zh) 2021-06-04
TWI587679B (zh) 2017-06-11
TW201338497A (zh) 2013-09-16
WO2013134512A1 (en) 2013-09-12
JP2015511038A (ja) 2015-04-13
US20130238691A1 (en) 2013-09-12
US20170034314A1 (en) 2017-02-02
US10122830B2 (en) 2018-11-06
CN103312664B (zh) 2017-06-09
CN107451472A (zh) 2017-12-08
EP2823431A1 (en) 2015-01-14

Similar Documents

Publication Publication Date Title
JP5868529B2 (ja) フォームに関係する検証
US10223524B1 (en) Compromised authentication information clearing house
CN108369615B (zh) 动态更新captcha质询
US9838384B1 (en) Password-based fraud detection
US10462665B2 (en) Multifactor network authentication
US10176318B1 (en) Authentication information update based on fraud detection
KR102429406B1 (ko) 콘텐츠 플랫폼에서 사용자 상호작용 확인
EP3005210B1 (en) Secure automatic authorized access to any application through a third party
US11810014B2 (en) Systems, methods and apparatus for evaluating status of computing device user
US20200110868A1 (en) Augmented push authentication
JP2018097848A (ja) ユーザによるアプリケーションの不公平な評価を防止するシステム及び方法
US10567171B2 (en) Client-side security key generation
Yue et al. SessionMagnifier: A simple approach to secure and convenient kiosk browsing
Algwil Click-based Captcha paradigm as a web service
Hidhaya et al. Supplementary event-listener injection attack in smart phones
US20230065787A1 (en) Detection of phishing websites using machine learning
US20240020376A1 (en) System and method for safely autofilling login fields in computing sources
Zhang et al. MiniCAT: Understanding and Detecting Cross-Page Request Forgery Vulnerabilities in Mini-Programs
Chaudhary et al. Computer Science Review
Coffie MonitR: A mobile application for monitoring online accounts’ security

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150820

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150901

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151105

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160105

R150 Certificate of patent or registration of utility model

Ref document number: 5868529

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250