JP7277593B2 - ウェブビュー内のコンテンツおよび対話の検証 - Google Patents

ウェブビュー内のコンテンツおよび対話の検証 Download PDF

Info

Publication number
JP7277593B2
JP7277593B2 JP2021544613A JP2021544613A JP7277593B2 JP 7277593 B2 JP7277593 B2 JP 7277593B2 JP 2021544613 A JP2021544613 A JP 2021544613A JP 2021544613 A JP2021544613 A JP 2021544613A JP 7277593 B2 JP7277593 B2 JP 7277593B2
Authority
JP
Japan
Prior art keywords
content
content provider
web view
data
digital component
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
JP2021544613A
Other languages
English (en)
Other versions
JP2022541084A (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.)
Google LLC
Original Assignee
Google LLC
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 Google LLC filed Critical Google LLC
Publication of JP2022541084A publication Critical patent/JP2022541084A/ja
Priority to JP2023076771A priority Critical patent/JP2023120183A/ja
Application granted granted Critical
Publication of JP7277593B2 publication Critical patent/JP7277593B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • 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/904Browsing; Visualisation therefor
    • 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/955Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
    • G06F16/9566URL specific, e.g. using aliases, detecting broken or misspelled links
    • 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/957Browsing optimisation, e.g. caching or content distillation
    • 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
    • G06F21/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • 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/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/134Hyperlinking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software

Description

本明細書は、一般に、ネイティブアプリケーション内で実行されるウェブビュー内での表示のために提供されるコンテンツ、ならびにウェブビュー内のコンテンツとの対話のデータ処理および検証に関する。
クライアントデバイスは、たとえば、商用ウェブブラウザ内で、またはウェブビューを実行する(商用ウェブブラウザ以外の)ネイティブアプリケーションを介して、1つまたは複数のコンテンツプロバイダによって提供されるデジタルウェブコンテンツを表示することができる。本明細書で使用されるように、ウェブビューは、(1)ウェブページをレンダリングする、(2)グラフィカルユーザインターフェースを生成するために、スクリプトおよび/またはウェブコード(たとえば、JavaScript、カスケーディングスタイルシート(CSS)、拡張可能マークアップ言語(XML)など)を読み取り、コンパイルし、および/または実行する、ならびに/あるいは、(3)サーバ(たとえば、コンテンツプロバイダ、コンテンツプラットフォームなど)との通信を可能にすることができる、ネイティブアプリケーション内に含まれるブラウザエンジンを含み得る。
一般に、本明細書に記載する主題の1つの革新的な態様は、クライアントデバイス上で起動されたアプリケーションの一部で実行されるウェブビュー内に、デジタルコンポーネントを含む第1のコンテンツページを提供することと、ウェブビュー内で実行されるスクリプトによって、デジタルコンポーネントとの1つまたは複数の対話を表す対話信号のセットを検出することと、アプリケーションのネイティブ層とウェブビューとの間の通信ブリッジを介して、ウェブビューからネイティブ層内に常駐するソフトウェアライブラリに対話信号のセットを転送することと、ソフトウェアライブラリによって、対話信号のセットが、自動化された対話の代わりに、クライアントデバイスの人間のユーザによる、デジタルコンポーネントとの対話を示すかどうかの評価のために、対話信号のセットを第1のコンテンツプロバイダに送信することと、ソフトウェアライブラリによって、デジタルコンポーネントとの1つまたは複数の対話に応答して、デジタルコンポーネントによってリンクされ、第1のコンテンツプロバイダによって提供される第2のコンテンツページを起動することとの動作を含む方法で具体化することができる。この態様の他の実施形態は、コンピュータ記憶デバイス上に符号化された、対応する方法、装置、および方法のアクションを実行するように構成されたコンピュータプログラムを含む。
これらおよび他の実施形態は各々、任意選択で、以下の特徴のうちの1つまたは複数を含むことができる。
方法は、ウェブビュー内で実行されるスクリプトによって、デジタルコンテンツの要求を生成するステップであって、要求は、ネイティブ層によってウェブビューに割り当てられるウェブビューの一意の識別子を含み、デジタルコンテンツの要求は、環境信頼性データおよび一意の識別子を暗号化することによって生成される暗号化されたデータセットを含む、ステップと、デジタルコンテンツの要求を第2のコンテンツプロバイダに提供するステップであって、第2のコンテンツプロバイダは、第1のコンテンツプロバイダとは異なる、ステップと、第2のコンテンツプロバイダへのデジタルコンテンツの要求の提供に応答して、第2のコンテンツプロバイダから、デジタルコンポーネントおよび一意の識別子を含むデータを受信するステップと、コンテンツプロバイダから受信されたデータが一意の識別子を含むことを検証するステップと、コンテンツプロバイダから受信されたデータが一意の識別子を含むことを検証することに応答して、ウェブビュー内に、デジタルコンポーネントを提供するステップとをさらに含むことができる。
方法は、スクリプトによって、通信ブリッジを介して、環境信頼性データの要求をソフトウェアライブラリに送信するステップであって、環境信頼性データは、ネイティブアプリケーションおよびクライアントデバイスの信頼性を評価するための、ネイティブアプリケーションおよびクライアントデバイスに関するデータを含む、ステップと、ソフトウェアライブラリから、通信ブリッジを介して、環境信頼性データを受信するステップとを含むことができる。
方法は、第2のコンテンツページを起動するステップが、人間のユーザによる対話を示す対話信号の評価に応答して実行されることを含むことができ、第2のコンテンツページを起動するステップは、ウェブブラウザアプリケーションを起動するステップと、ウェブブラウザアプリケーション内の第2のコンテンツページのURLにアクセスするステップとを含む。
方法は、ソフトウェアライブラリによって、ウェブビューの一意の識別子が、コンテンツプロバイダから受信されたデータに含まれていた一意の識別子と一致することを決定するステップを含むことができる。
方法は、対話信号のセットを第1のコンテンツプロバイダに提供するステップは、環境信頼性データを第1のコンテンツプロバイダに提供するステップをさらに含み、対話信号のセットを表すデータおよび環境信頼性データを、第1のコンテンツプロバイダによって提供され、デジタルコンポーネントによってリンクされる第2のコンテンツページのユニフォームリソースロケータ(URL)に追加するステップをさらに含むことを含むことができる。
本明細書に記載される主題の特定の実施形態は、以下の利点のうちの1つまたは複数を実現するように実施することができる。たとえば、本明細書に記載される技法は、コンテンツプロバイダが、ウェブビュー内での表示のために提供されるデジタルコンポーネント(たとえば、デジタルメディアアイテム、デジタル広告、または他のコンテンツページへのリンク)との対話が、自動化された対話(たとえば、ソフトウェアの欠陥/バグによって誤って生成された、および/または悪意のあるコード/エンティティによって人間のユーザによって生成されたものとして改ざんされた可能性がある対話)とは対照的に、実際の人間のユーザによる対話であるかどうかを検証することを可能にする。ウェブビューは、ネイティブアプリケーション内のコンテナクラスとして実装され、一般に、基礎となるネイティブアプリケーションのネイティブ層で実行されるリソースにアクセスすることができない。その結果、ネイティブ層の対話検証リソースは、ウェブビューによってアクセス不可能であり、したがって、これらのリソースは、既存のシステムを使用してウェブビュー内に表示するために提供されるデジタルコンポーネントとの対話を検証する際に活用することができない。対照的に、本明細書に記載される技法は、ネイティブ層とウェブビューとの間にソフトウェアブリッジ(たとえば、JavaScriptブリッジ)を実装し、ネイティブ層の対話検証リソースを利用して、ウェブビュー内のデジタルコンポーネントとの対話の検証を支援することが可能になる。
本明細書に記載される技法はまた、悪意のある、または他の望ましくない/要求されていないコードの実行がウェブビュー内で実行されることを防止する。ウェブビューは、ネイティブアプリケーション内のコンテナクラスとして実装されるので、アプリケーションのネイティブ層は、一般に、ウェブビュー内で受信され、表示されるコンテンツに対する制御を有さない。その結果、ウェブビューは、ウェブビュー(および/またはウェブビューとネイティブ層との間の対話)、基礎となるネイティブアプリケーション、および/またはクライアントデバイスを危険にさらす可能性がある悪意のあるコードおよび/またはコンテンツを受信する可能性がある。たとえば、これは、ウェブビューが、1つのコンテンツプロバイダにコンテンツを要求するが、代わりに、要求が送信されたコンテンツプロバイダ以外のエンティティ(たとえば、悪意のあるエンティティ)からコンテンツ/コードを受信する場合に起こり得る。これらの問題に対処するために、本明細書に記載される技法は、要求が送信されたコンテンツプロバイダが、コンテンツが受信されたのと同じコンテンツプロバイダであるかどうかを検証するために、アプリケーションのネイティブ層に常駐するソフトウェアリソースを利用する。
本明細書に記載の主題の1つまたは複数の実施形態の詳細は、添付の図面および以下の説明に記載されている。主題の他の特徴、態様、および利点は、説明、図面、および特許請求の範囲から明らかになるであろう。
コンテンツページおよびデジタルコンポーネントが配信され、クライアントデバイス上での表示のために提供される例示的な環境100のブロック図である。 ウェブビュー内に提供されるデジタルコンポーネントとの対話が実際の人間のユーザによる対話であるかどうかを検証する際に図1のコンポーネントによって実行される動作を示すブロック図である。 ウェブビュー内での表示のために提供されるデジタルコンポーネントが、意図されたコンテンツプロバイダによって提供されるかどうかを検証する際に図1のコンポーネントによって実行される動作を示すブロック図である。 ウェブビュー内に提供されるデジタルコンポーネントとの対話が、実際の人間のユーザによる対話であるかどうかを検証するための例示的なプロセスのフロー図である。 記載した動作を実行するために使用することができる例示的なコンピュータシステムのブロック図である。
本明細書は、一般に、ネイティブアプリケーション内で実行されるウェブビュー内での表示のために提供されるコンテンツ、ならびにウェブビュー内のコンテンツとの対話の検証に関する。
コンテンツプロバイダは、アプリケーションのウェブビュー内に表示されたデジタルコンポーネントとの対話が、クライアントデバイスの実際の人間のユーザによって実行された対話であり、人間の対話の何らかの改ざんされた指示ではないことを検証することを望む場合がある。本明細書に記載される技法は、以下に要約され、本明細書全体にわたってさらに詳細に説明されるように、ウェブビュー内のスクリプトを実行してデジタルコンポーネントとの対話信号を検出し、ウェブビューとアプリケーションのネイティブ層との間の通信ブリッジを使用して、ウェブビューからアプリケーションのネイティブ層に常駐するソフトウェアライブラリに対話信号を送信することによって、そのような対話検証を可能にする。ウェブビューから対話信号を受信した後、ネイティブ層内のソフトウェアライブラリは、対話信号(および/または(本明細書にさらに記載されるような)追加の環境信頼性データ)をコンテンツプロバイダに送信し、コンテンツプロバイダは、(たとえば、ソフトウェア欠陥/バグに起因して誤って生成され、および/または悪意のあるコード/エンティティによって改ざんされる自動化された対話とは対照的に)対話信号がクライアントデバイスの実際の人間のユーザによる対話を示すかどうかを評価することができる。
本明細書で使用されるように、通信ブリッジは、ネイティブアプリケーションのネイティブ層をネイティブアプリケーションのウェブビューに接続し、ウェブビューとネイティブ層との間の通信およびデータ送信を可能にするソフトウェアブリッジである。いくつかの実装形態では、通信ブリッジは、JavaScriptブリッジとして実装することができる。いくつかの実装形態では、JavaScriptブリッジは、クライアントデバイスのオペレーティングシステム(OS)によって実装される。そのようなOSの例は、AndroidまたはiOSを含み得る。たとえば、JavaScriptブリッジは、OSによって提供されるアプリケーションプログラミングインターフェース(API)を使用して実装することができる。
ウェブビュー内の対話を検証することに加えて、以下に要約され、本明細書全体にわたって説明される技法は、ウェブビュー内での表示のために提供されるコンテンツが、実際に、そのようなコンテンツが要求されたコンテンツプロバイダによって提供されることを検証する。この検証は、ウェブビューによる望ましくないコードおよび/または悪意のあるコードの受信を防止しようと試み、これにより、ウェブビュー、ネイティブアプリケーション、および/またはクライアントデバイスが危険にさらされることを防止することができる。そのようなコンテンツ検証を可能にするために、アプリケーションのネイティブ層内のソフトウェアライブラリは、一意の識別子をウェブビューに割り当て、この一意の識別子を環境信頼性データ(本明細書でさらに説明する)とともにウェブビューに提供する。いくつかの実装形態では、ソフトウェアライブラリは、アプリケーションのウェブビューに送信する前に、一意の識別子および環境信頼性データを暗号化することができる。そのような実装形態では、ウェブビューは、この暗号化された一意の識別子および環境信頼性データを、コンテンツの要求とともにコンテンツプロバイダに提供する。
コンテンツ要求を受信すると、コンテンツプロバイダは、暗号化された一意の識別子および環境信頼性を復号して、一意の識別子を抽出することができる。次いで、コンテンツプロバイダは、ウェブビューに送信されるメッセージに、データ(たとえば、デジタルコンポーネント)とともに一意の識別子を含めることができる。デジタルコンポーネントがウェブビュー内での表示のために提供される前に、ウェブビューは、受信された一意の識別子を(通信ブリッジを介して)ソフトウェアライブラリに送信し、ソフトウェアライブラリは、受信された一意の識別子がウェブビューに割り当てられた一意の識別子と同じであるかどうかを検証する。受信された一意の識別子が、ウェブビューに割り当てられた一意の識別子と同じである場合、ソフトウェアライブラリは、受信されたデジタルコンポーネントがウェブビュー内での表示のために提供され得ることを決定することができ、表示のためにデジタルコンポーネントを提供するようにウェブビューに命令する。一方、受信された一意の識別子が、ウェブビューに割り当てられた一意の識別子と同じでない場合、ソフトウェアライブラリは、ウェブビュー内での表示のために、受信されたデジタルコンポーネントを提供することができないと決定し、このデジタルコンポーネントを表示しないようにウェブビューに命令する。
これらの特徴および追加の特徴について、図1~図4を参照して以下でさらに説明する。
図1は、コンテンツページおよびデジタルコンポーネントが配信され、クライアントデバイス上での表示のために提供される例示的な環境100のブロック図である。例示的な環境100は、ネットワーク104を含む。ネットワーク104は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、インターネット、またはそれらの組合せを含むことができる。ネットワーク104は、任意のタイプのワイヤードおよび/またはワイヤレスネットワーク、衛星ネットワーク、ケーブルネットワーク、Wi-Fiネットワーク、モバイル通信ネットワーク(たとえば、3G、4Gなど)、またはそれらの任意の組合せも含むことができる。ネットワーク104は、インターネットプロトコル(IP)、伝送制御プロトコル(TCP)、ユーザデータグラムプロトコル(UDP)、または他のタイプのプロトコルなど、パケットベースおよび/またはデータグラムベースのプロトコルを含む通信プロトコルを利用することができる。ネットワーク104は、ネットワーク通信を容易にし、および/または、スイッチ、ルータ、ゲートウェイ、アクセスポイント、ファイアウォール、基地局、リピータ、またはそれらの組合せなど、ネットワークのためのハードウェアベースを形成するいくつかのデバイスをさらに含むことができる。ネットワーク104は、クライアントデバイス102、コンテンツプロバイダ106を接続する。例示的な環境100は、多くの異なるコンテンツプラットフォーム106、コンテンツプロバイダ108、およびクライアントデバイス102を含み得る。
コンテンツプラットフォーム106は、コンテンツの配信を可能にするコンピューティングプラットフォーム(たとえば、図5を参照しながら説明するようなデータ処理装置など)である。例示的なコンテンツプラットフォーム106は、検索エンジン、ソーシャルメディアプラットフォーム、新しいプラットフォーム、データアグリゲータプラットフォーム、または他のコンテンツ共有プラットフォームを含む。各コンテンツプラットフォーム106は、コンテンツプラットフォームサービスプロバイダによって操作されてもよい。
コンテンツプラットフォーム106は、それ自体のコンテンツを公開し、利用可能にすることができる。たとえば、コンテンツプラットフォーム106は、それ自体のニュース記事を公開するニュースプラットフォームであってもよい。コンテンツプラットフォーム106は、コンテンツプラットフォーム106の一部ではない1つまたは複数のコンテンツプロバイダ108によって提供されるコンテンツも提示し得る。上記の例では、ニュースプラットフォームは、1つまたは複数のコンテンツプロバイダ108によって提供されるサードパーティコンテンツを提示することもできる。別の例として、コンテンツプラットフォーム106は、それ自体のコンテンツのいずれも公開せず、異なるコンテンツプロバイダ108によって提供されるサードパーティコンテンツを集約し、提示するデータアグリゲータプラットフォームであってもよい。
本明細書で使用されるように、コンテンツプロバイダ108は、データ処理装置(図5を参照して説明される)とすることができ、1つまたは複数のエンティティによって生成および/または公開されたコンテンツを記憶し、これらのエンティティからのコンテンツの要求に応答して、コンテンツをコンテンツプラットフォーム106および/またはクライアントデバイス102に提供する、サーバ、リポジトリ、または他の記憶デバイスを含むことができる。
クライアントデバイス102は、ネットワーク104を介してコンテンツを要求し、受信することができる電子デバイスである。例示的なクライアントデバイス102は、パーソナルコンピュータ、モバイル通信デバイス、デジタルアシスタントデバイス、およびネットワーク104を介してデータを送受信することができる他のデバイスを含む。
例示的なクライアントデバイス102Aは、典型的には、デバイスストレージ114などのデバイスハードウェアおよびアプリケーションなどのソフトウェアリソースを管理することを主に担当するオペレーティングシステム112を備える。クライアントデバイス102Aは、典型的には、ネットワーク104を介したデータの送受信およびクライアントデバイス102上でのコンテンツページの提示を容易にするために、ウェブブラウザ116などのアプリケーションを含むが、クライアントデバイス102上で実行されるネイティブアプリケーション118(ウェブブラウザ以外)は、たとえば、これらのネイティブアプリケーション内で実行されるウェブビューを使用して、ネットワーク104を介したデータの送受信およびクライアントデバイス上でのコンテンツページの提示を容易にすることもできる。
いくつかの実装形態では、クライアントデバイス102上で実行されるアプリケーション118は、ネイティブ層を含み、ネイティブ層は、クライアントデバイス102上で実行するためにコンパイルされた(たとえば、オペレーティングシステム、プロセッサ、チップセットなどのクライアントデバイス102Aのソフトウェアおよびハードウェア環境のためにコンパイルされた)実行可能オブジェクトとすることができる。いくつかの実装形態では、ネイティブ層122は、ソフトウェアライブラリ123をさらに含むことができる。本明細書全体を通して使用されるように、ソフトウェアライブラリ123は、1つまたは複数の動作を実行することを可能にする、基礎となるネイティブアプリケーションのネイティブ層で実行されるコンピュータ実行可能リソースを含み得る。たとえば、本明細書全体にわたって説明するように、ソフトウェアライブラリ123は、ウェブビューに提供されるコンテンツの検証、および/またはウェブビューに提供されるコンテンツとの対話を可能にし、および/または支援し得る。
いくつかの実装形態では、アプリケーション118は、ウェブビュー126を含むように構成することもできる。本明細書で使用されるように、ウェブビューは、JavaScript、カスケーディングスタイルシート(CSS)、拡張マークアップ言語(XML)など、ウェブコードおよび/または技術を読み取り、コンパイルし、および/または実行して、グラフィカルユーザインターフェースを生成し、ウェブサーバと通信し、他のウェブクライアント機能を実行することができる。いくつかの実装形態では、アプリケーションのウェブビューは、コンテンツプロバイダによって提供されるコンテンツページとともにスクリプトをロードする。たとえば、スクリプト127は、コンテンツページとともにロードされ、アプリケーション118のウェブビュー126内で実行されるJavaScriptコードとすることができる。
ウェブビュー126は、コンテンツプロバイダと通信して、コンテンツプロバイダにコンテンツページを要求することができ、そのようなコンテンツを受信すると、ウェブビューは、表示のためにこのコンテンツを提供することができる。クライアントデバイス102Aのユーザは、ウェブビュー内の受信されたコンテンツページ上に提供された1つまたは複数のデジタルコンポーネントと対話することができる。
上記で説明したように、従来のシステムでは、ウェブビュー内に提供されるコンテンツ、およびそのようなコンテンツとの対話を検証することができない。対照的に、図2および図3の以下の説明は、ウェブビュー内に提供されるコンテンツの検証、およびそのようなコンテンツとの対話の検証を可能にする。
図2は、ウェブビュー内に提供されるデジタルコンポーネントとの対話が実際の人間のユーザによる対話であるかどうかを検証する際に図1のコンポーネントによって実行される動作を示すブロック図200である。
図2に示すように、クライアントデバイス102A(たとえば、スマートフォン)は、コンテンツプロバイダによって提供され、ネイティブアプリケーション118のウェブビュー126内での表示のために提示される第1のコンテンツページ202にアクセスする。たとえば、第1のコンテンツページ202は、異なるコンテンツプロバイダ108によって提供されるニュース記事を含むニュースアグリゲータプラットフォームによって提供されるコンテンツページであってもよい。別の例として、第1のコンテンツページ202は、1つまたは複数のコンテンツプロバイダ108によって提供されるメディアアイテムを提示するソーシャルメディアプラットフォームによって提供されるコンテンツページとすることができる。図2に示すように、第1のコンテンツページ202は、同じコンテンツプロバイダまたは異なるコンテンツプロバイダによって提供することができる第2のコンテンツページにリンクされたデジタルコンポーネント204も含むことができる。本明細書で使用されるように、デジタルコンポーネントは、たとえば、ビデオクリップ、オーディオクリップ、マルチメディアクリップ、画像、テキスト、ユニフォームリソースロケータ(URL)、または別のコンテンツ単位などのデジタルコンテンツまたはデジタル情報の個別の単位である。
図2は、ネイティブアプリケーション118内で発生する動作/対話をさらに示し、特に、ネイティブ層122とウェブビュー126との間で発生する動作/対話を示す。ネイティブ層122は、クライアントデバイス102A上で実行するためにコンパイルされた実行可能オブジェクトであり、オペレーティングシステム、プロセッサ、チップセットなどのクライアントデバイス102Aのソフトウェアおよびハードウェア環境に基づく。ウェブビュー126は、JavaScript、カスケーディングスタイルシート(CSS)、拡張マークアップ言語(XML)など、ウェブコードおよび/または技術を読み取り、コンパイルし、および/または実行して、グラフィカルユーザインターフェースを生成し、ウェブサーバと通信し、他のウェブクライアント機能を実行することができる。上記で説明したように、ウェブビューは、ネイティブアプリケーション内のコンテナクラスとして実装され、基礎となるネイティブアプリケーションのネイティブ層で実行されるリソースに直接アクセスすることができない。したがって、ウェブビューがネイティブ層内のこれらのリソースにアクセスするためには、ウェブビューとネイティブ層との間の通信ブリッジが必要である(上記で説明し、本明細書全体にわたってさらに詳細に説明するように)。
いくつかの実装形態では、ウェブビュー126は、コンテンツプロバイダによって提供されるコンテンツページとともにスクリプトをロードする。ウェブビューは、さらに、クライアントデバイス102A上にコンテンツページを提示し、クライアントデバイス102Aのユーザが、コンテンツページに含まれるデジタルコンポーネントと対話することを可能にする。
ユーザは、デジタルコンポーネント204と対話することができる(たとえば、クライアントデバイス102Aのタッチセンシティブスクリーン上でその指および/またはスタイラス206を押す)。この対話に応答して、ウェブビューは、デジタルコンポーネント204によってリンクされる第2のコンテンツページを起動することができる。いくつかの事例では、デジタルコンポーネント204との記録された対話は、(たとえば、アプリケーションおよび/またはウェブビューにおけるソフトウェアの欠陥またはバグのために)誤って生成された可能性があり、またはアプリケーション内で実行される悪意のあるコード(たとえば、デジタルコンポーネントとの対話を改ざんするために悪意のあるエンティティによって投入されたコード)によって生成された可能性がある。
ウェブビュー内のデジタルコンポーネント204との対話がクライアントデバイス102Aの実際の人間のユーザによって実行されるかどうかの検証を可能にするために、ウェブビュー内で実行されるスクリプトは、デジタルコンポーネントとの対話によって生成される対話信号のセットを検出する。スクリプトによって検出されるそのような対話信号の例は、対話が検出された位置の座標(たとえば、タッチセンシティブスクリーン上の接点)と、接触が行われた時間量とを含み得る。たとえば、クライアントデバイス102Aのユーザがスタイラス206を使用してデジタルコンポーネント204と対話する場合、スクリプトは、スタイラス206が接触した位置の座標と、接触が行われた時間量とを含み得る対話信号を検出することができる。
対話信号のセットを検出した後、ウェブビュー126で実行されるスクリプト127は、対話信号210のセットを、通信ブリッジを介してアプリケーションのネイティブ層内のソフトウェアライブラリに送信する。たとえば、ウェブビュー126内で実行されているスクリプト127によって対話信号210のセットを検出した後、スクリプト127は、通信ブリッジ120を介してネイティブ層122内のソフトウェアライブラリ123に対話信号のセットを送信する。
いくつかの実装形態では、ネイティブ層122内のソフトウェアライブラリ123は、単独で、またはクライアントデバイス102Aのオペレーティングシステムとともに動作して、クライアントデバイス102Aおよび/またはネイティブアプリケーション118のソフトウェアおよびハードウェア環境に関する信号を収集するように構成される。収集される信号の例は、限定はしないが、クライアントデバイス上で実行されるオペレーティングシステムバージョン、クライアントデバイス上で使用されるチップセット、ネイティブアプリケーションの識別子、ネイティブアプリケーションのバージョン、ネイティブアプリケーションがオフィシャルアプリケーションストアからダウンロードされたかどうか、クライアントデバイスのタイプ、クライアントデバイスのモデル、デバイスがルーティングおよび/またはジャイルブレークされたかどうかの証拠、クライアントデバイスのオペレーティングシステムが最後に更新されたとき、ネイティブアプリケーション118がエミュレータ上で実行されているかどうかなどを含む。また、信号は、クライアントデバイス102A上でのアプリケーション118の実行を担う可能性のある、クライアントデバイス102A内の他のハードウェアおよび/またはソフトウェアリソースに関する詳細を含んでもよい。環境信頼性データ212と総称されるこれらの信号は、クライアントデバイス102の信頼性を決定するためにコンテンツプロバイダによって使用され得る。
いくつかの実装形態では、ウェブビュー126から対話信号のセットを受信した後、ソフトウェアライブラリ123は、対話信号210のセットを単独で、または環境信頼性データ212と組み合わせてコンテンツプロバイダ108に送信する。いくつかの実装形態では、ソフトウェアライブラリは、対話信号のセットを表すデータおよび環境信頼性データを、コンテンツプロバイダ108によって提供され、デジタルコンポーネント204によってリンクされる第2のコンテンツページのユニフォームリソースロケータ(URL)に追加する。
いくつかの実装形態では、ソフトウェアライブラリは、別個のウェブブラウザアプリケーション(たとえば、アプリケーション116)を起動し、前段落で参照したURLにアクセスすることができる。このURLにナビゲートすることによって、ソフトウェアライブラリ123は、コンテンツプロバイダ108に、対話信号のセットおよび環境信頼性データを提供する(およびコンテンツプロバイダ108が受信する)。あるいは、URLは、ウェブビュー126内で起動することができる。
受信された対話信号210および/または環境信頼性データ212(たとえば、コンテンツプロバイダ108によって提供される第2のコンテンツページにアクセスするために使用されるURLに含まれる)に基づいて、コンテンツプロバイダ108は、ウェブビュー内のデジタルコンポーネント204との対話が、クライアントデバイス102Aの実際の人間のユーザによるものであるかどうかを検証することができる。
コンテンツプロバイダ108は、たとえば、機械学習モデル、ルールベースのエンジン、または、ウェブビュー126上で実行される対話がクライアントデバイス102Aの実際の人間のユーザによって生成されるかどうかを決定するために、対話信号210のセットおよび/または環境信頼性データ212を処理する別の適切な技法を実装し得る。コンテンツプロバイダ108がルールベースのエンジンを含む実装形態では、このエンジンは、ルールのセットを使用して対話信号および/または環境信頼性データを分析して、ウェブビュー内の対話が実際の人間のユーザによる対話であるかどうかを決定することができる。あるいは、コンテンツプロバイダ108が機械学習モデル(たとえば、教師ありまたは教師なし学習モデル)を含む実装形態では、このモデルは、環境信頼性データおよび/または対話信号を入力として受け入れ、ウェブビュー内の対話が実際の人間のユーザによって実行されたかどうかに関する決定(たとえば、バイナリ決定、または尤度評価)を出力する。たとえば、機械学習モデルは、複数のクライアントデバイスのトレーニングデータを使用してトレーニングされる教師ありモデルとすることができ、各そのようなデバイスのための対話信号および環境信頼性データと、それぞれのデバイスのウェブビュー内の対話が実際の人間のユーザによるものであったか否かに関する既知の対応する決定とを含む。
ウェブビュー内のデジタルコンポーネントとの対話が実際の人間のユーザによる対話であったかどうかに関する決定に基づいて、コンテンツプロバイダ108は、少なくとも以下のアクションをとることができる。対話が実際の人間のユーザによるものではなかったとコンテンツプロバイダ108が決定した場合、コンテンツプロバイダ108は、デジタルコンポーネント204によってリンクされた第2のコンテンツページへのアクセスを拒否することができる。これは、潜在的に危険にさらされているデバイスへのコンテンツの配信を回避することによって、サーバ処理能力およびネットワーク帯域幅などのコンテンツプロバイダにおけるリソースを節約することができる。サービス拒否DoS攻撃が1つまたは複数のクライアントデバイスで発生する場合、これは、大幅な節約になる可能性があり、コンテンツプロバイダが1つまたは複数のクライアントデバイスからの悪意のある要求で圧倒されるのを防止することさえできる。102A。一方、対話が実際の人間のユーザによるものであったとコンテンツプロバイダ108が決定した場合、コンテンツプロバイダ108は、デジタルコンポーネント204によってリンクされた第2のコンテンツページへのアクセスを許可することができる。いくつかの実装形態では、コンテンツプロバイダ108が、対話が実際の人間のユーザによるものではなかったと決定した場合、コンテンツプロバイダ108は、それにもかかわらず、デジタルコンポーネント204によってリンクされた第2のコンテンツページへのアクセスを可能することができるが、対話が発生したクライアントデバイス102Aおよび/またはアプリケーション118に関する詳細を記録して、そのデバイス/アプリケーションへのコンテンツのその後の配信を防止または制限することができ、前述のように、潜在的に危険にさらされているクライアントデバイス102Aへのコンテンツの配信を回避することによってコンテンツプロバイダにおけるリソースを節約することができる。
あるいは、ウェブビュー内の対話が実際の人間のユーザによる対話であるかどうかを検証するコンテンツプロバイダ108の代わりに、そのような検証は、ソフトウェアライブラリ123によって実行されてもよい。たとえば、ネイティブアプリケーションは、ウェブビュー上で実行される対話がクライアントデバイスの実際の人間のユーザによって生成されるかどうかを決定するための(前段落でコンテンツプロバイダ108を参照して説明したような)特定のフレームワークを含むように構成することができる。そのような実装形態では、ソフトウェアライブラリ123が、対話が実際の人間のユーザによるものではなかったと決定した場合、ソフトウェアライブラリ123は、別個のブラウザアプリケーション(たとえば、アプリケーション116)を起動することを拒否し、および/またはこのアプリケーション116内のデジタルコンポーネント204によってリンクされる第2のコンテンツページへのアクセスを防止することができる。これは、潜在的に危険にさらされているクライアントデバイス102Aの処理能力、メモリ使用量、ネットワーク使用量、およびバッテリー電力などのリソースを節約することができる。一方、ソフトウェアライブラリ123が、対話が実際の人間のユーザによるものであったと決定した場合、ソフトウェアライブラリ123は、アプリケーション116を起動し、アプリケーション116内の第2のコンテンツページにナビゲートする(たとえば、そのURLにアクセスすることによって)ことができる。
要約すると、上記の説明は、ウェブビュー内のデジタルコンポーネントとの対話が、クライアントデバイスの実際の人間のユーザによる対話としてどのように検証されるかを説明する。図3の以下の説明は、ウェブビュー内での表示のために提供されるデジタルコンポーネントが、意図されたコンテンツプロバイダ(すなわち、コンテンツの要求が送信されたコンテンツプロバイダ)によって提供されるものとしてどのように検証されるかを説明する。
図3は、ウェブビュー内での表示のために提供されるデジタルコンポーネントが、意図されたコンテンツプロバイダによって提供されるかどうかを検証する際に図1のコンポーネントによって実行される動作を示すブロック図300である。
図2と同様に、図3は、ネイティブアプリケーション118内で発生する動作/対話を示し、特に、ネイティブ層122とウェブビュー126との間で発生する動作/対話を示す(両方とも、図1および図2を参照してすでに上述した)。
ウェブビュー126が起動されると、ウェブビュー126(または代替として、ウェブビュー126内で実行されるスクリプト327)は、コンテンツプロバイダ108に(要求316を使用して)デジタルコンテンツを要求する。いくつかの実装形態では、ウェブビューで実行されるスクリプトによって生成されるデジタルコンテンツの要求(単に「コンテンツの要求」とも呼ばれる)は、ヘッダおよびペイロードデータを含むパケット化されたデータ要求である。コンテンツページの要求は、たとえば、デジタルコンポーネントが要求されているコンテンツプロバイダの名前(またはネットワークロケーション)、および要求側デバイス(たとえば、クライアントデバイス102)の名前(またはネットワークロケーション)などの特徴を指定するイベントデータを含むことができる。いくつかの実装形態では、イベント特徴を指定するイベントデータは、デジタルコンポーネントの位置を含むことができる。たとえば、アプリケーション118のウェブビュー126で実行されるスクリプト327によって生成されるコンテンツの要求は、デジタルコンポーネントのURLまたは別のリソース識別子を含み得る。
いくつかの実装形態では、スクリプト327は、コンテンツの要求とともに、ウェブビューに割り当てられた一意の識別子(UID)と、環境信頼性データとを含むことができる。そのような実装形態では、スクリプトは、最初に、通信ブリッジ120を介して、ネイティブ層122に常駐するソフトウェアライブラリ123に環境信頼性データの要求を送信する。この要求は、ウェブビューのUID314を含むことができ、これをソフトウェアライブラリ123が使用して、環境信頼性データの要求が実際にウェブビュー126に由来することを検証することができる(たとえば、ネイティブ層122に記憶されたウェブビュー126のUIDを受信されたUIDと比較することによって)。そのような検証を実行すると、ソフトウェアライブラリ123は、図2を参照して説明したように環境信頼性データを生成し、この環境信頼性データを、通信ブリッジ120を介してウェブビューに提供する。
いくつかの実装形態では、ソフトウェアライブラリ123は、暗号化されたデータセット内の環境信頼性データおよびウェブビューUIDを暗号化し、ソフトウェアライブラリ123がウェブビュー126に提供する応答312内にこのデータセットを含む。ソフトウェアライブラリは、たとえば、非対称暗号化アルゴリズムを使用して、暗号化されたデータセットを生成することができる。そのような暗号化の一部として、ソフトウェアライブラリは、コンテンツプロバイダ108の公開鍵を使用して暗号化されたデータセットを生成する。
次いで、スクリプト327は、この暗号化されたデータセットをコンテンツの要求316とともに含む。図示されていないが、デジタルコンテンツの要求316は、ネットワーク104を介してコンテンツプロバイダ108に送信される。
コンテンツの要求316を受信すると、コンテンツプロバイダ108は、(たとえば、コンテンツプロバイダの秘密鍵を使用して、非対称暗号化が使用される場合)暗号化されたデータセットを復号して、暗号化されていない一意の識別子314aおよびイベント信頼性データを取得することができる。コンテンツプロバイダ108は、デジタルコンポーネント304(またはデジタルコンポーネント304のリソース識別子、たとえばURL)ならびに復号された一意の識別子314aを含むデータを用いて応答318を生成する。図3には示されていないが、応答318は、ネットワーク104を介して、クライアントデバイス102A上で実行されるアプリケーション118のウェブビュー126内のスクリプト127に送信される。
応答318を受信すると、スクリプト327は、応答318に含まれる一意の識別子(UID)314aを、通信ブリッジ120を介してソフトウェアライブラリ123に提供する。ソフトウェアライブラリ123は、UID314aを、ネイティブ層122に記憶されているウェブビュー126のUID314と比較する。この比較/評価に基づいてUIDが一致する場合、ソフトウェアライブラリ123は、デジタルコンポーネントが、実際に、意図されたコンテンツプロバイダ108(すなわち、コンテンツの要求316が送信されたコンテンツプロバイダ108)から受信されたと決定する。一方、この評価に基づいてUIDが一致しない場合、ソフトウェアライブラリ123は、受信したデジタルコンポーネントが、意図されたコンテンツプロバイダ108(すなわち、コンテンツの要求316が送信されたコンテンツプロバイダ108)以外のエンティティによって提供されたと決定する。ソフトウェアライブラリは、デジタルコンポーネントが実際に意図されたコンテンツプロバイダ108から受信されたかどうかの指示を含む評価結果315を生成し、評価結果315をスクリプト327に提供する。
評価結果に基づいて、スクリプト327は、応答318で提供されるデジタルコンポーネントの表示を提供するか、または表示を防止するように構成することができる。たとえば、スクリプト327は、応答318で受信されたデジタルコンポーネントが意図されたコンテンツプロバイダ108から受信されなかったことを評価結果315が示す場合(すなわち、応答318内のUID314aがウェブビュー126のUID314と同じでない場合)、ウェブビュー126内に応答318で受信されたデジタルコンポーネントを提示しないように構成され得る。これは、クライアントデバイス102Aの処理能力、メモリ使用量、およびバッテリー電力などのリソースを節約する。一方、スクリプト327は、応答318で受信されたデジタルコンポーネントが意図されたコンテンツプロバイダ108から受信されたことを評価結果315が示す場合(すなわち、前段落で説明したように、応答318内のUID314aがウェブビュー126のUID314と同じである場合)、ウェブビュー126内に応答318で提供されたデジタルコンポーネントを提示するように構成され得る。
図4は、ウェブビュー内に提供されるデジタルコンポーネントとの対話が、実際の人間のユーザによる対話であるかどうかを検証するための例示的なプロセス400のフロー図である。プロセス400の動作は、図1、図2、および図3に記載および図示されたシステムの構成要素によって実行されるものとして、以下に記載される。プロセス400の動作は、例示のためにのみ以下に記載される。プロセス400の動作は、任意の適切なデバイスまたはシステム、たとえば、任意の適切なデータ処理装置によって実行することができる。プロセス400の動作は、非一時的コンピュータ可読媒体に記憶された命令として実施することもできる。命令の実行は、1つまたは複数のデータ処理装置にプロセス400の動作を実行させる。
デジタルコンポーネントを含む第1のコンテンツページは、クライアントデバイス上で起動されるネイティブアプリケーションにおいて実行されるウェブビューにおいて提供される(410)。いくつかの実装形態では、図2を参照して上述したように、クライアントデバイス102A(たとえば、スマートフォン)は、ウェブビュー126内に表示するために提供される第1のコンテンツページ202(第1のコンテンツプロバイダ108によって提供される)にアクセスする。第1のコンテンツページ202は、第2のコンテンツページ(第1のコンテンツプロバイダまたは第2のコンテンツプロバイダのいずれか(たとえば、第1のコンテンツプロバイダ以外の任意の他のコンテンツプロバイダ)によって提供され得る)にリンクするデジタルコンポーネント204をさらに含む。
ウェブビュー内で実行されるスクリプトは、デジタルコンポーネントとの1つまたは複数の対話を表す対話信号のセットを検出する(420)。いくつかの実装形態では、クライアントデバイス102A上で実行されるアプリケーション118のウェブビュー126は、コンテンツプロバイダ108によって提供されるコンテンツページ202とともにスクリプト127をロードする。いくつかの例では、デジタルコンポーネント204との対話は、ウェブビューによって記録され得る。ウェブビュー内のデジタルコンポーネント204との対話が、クライアントデバイスの実際の人間のユーザによって実行されるかどうかの検証を可能にするために(たとえば、ソフトウェアの欠陥/バグによって、および/または特定の悪意のあるコードの実行によってトリガされた対話とは対照的に)、ウェブビュー内で実行されるスクリプトは、(図2を参照してさらに説明されるように)デジタルコンポーネントとの検出された対話に基づいて、対話信号のセットを検出する。
対話信号のセットを、ウェブビューから、アプリケーションのネイティブ層とウェブビューとの間の通信ブリッジを介して、ネイティブ層内に常駐するソフトウェアライブラリに転送する(430)。いくつかの実装形態では、対話信号のセットを検出した後、ウェブビュー126で実行されるスクリプト127は、対話信号のセットを、通信ブリッジ120を介してアプリケーション118のネイティブ層122内のソフトウェアライブラリ123に送信する。
ソフトウェアライブラリは、対話信号のセットを評価のために第1のコンテンツプロバイダに送信する(440)。いくつかの実装形態では、(通信ブリッジを介して)アプリケーションのウェブビューから対話信号のセットを受信した後、アプリケーションのネイティブ層内のソフトウェアライブラリは、検証のために対話信号のセットをコンテンツプロバイダに送信する。たとえば、ソフトウェアライブラリ123は、スクリプト127から対話信号210のセットを受信した後、対話信号210のセットをコンテンツプロバイダ108に送信する。
いくつかの実装形態では、対話信号のセットを送信することに加えて、ソフトウェアライブラリ123はまた、環境信頼性データを収集し、コンテンツプロバイダ108に送信する(図2および図3を参照してさらに説明するように)。図2を参照して上述したように、いくつかの実装形態では、コンテンツプロバイダは、ウェブビュー内のデジタルコンポーネントとの対話がクライアントデバイスの実際の人間のユーザによって生成されたかどうかを評価/検証するために、対話信号および/またはイベント信頼性データを使用してもよい。
ソフトウェアライブラリによって、デジタルコンポーネントによってリンクされた第2のコンテンツページを起動する(450)。いくつかの実装形態では、ソフトウェアライブラリ123は、対話信号のセットを表すデータおよび環境信頼性データを、第1のコンテンツプロバイダによって提供され、デジタルコンポーネントによってリンクされる第2のコンテンツページのユニフォームリソースロケータ(URL)に追加する。次いで、ソフトウェアライブラリ123は、ウェブブラウザアプリケーション(ネイティブアプリケーションとは異なる)を起動し、ウェブブラウザアプリケーション内の第2のページのこのURLにアクセスする。
図5は、上記の動作を実行するために使用することができる例示的なコンピュータシステム500のブロック図である。システム500は、プロセッサ510、メモリ520、記憶デバイス530、および入力/出力デバイス540を含む。コンポーネント510、520、530、および540の各々は、たとえば、システムバス550を使用して相互接続することができる。プロセッサ510は、システム500内で実行するための命令を処理することができる。いくつかの実装形態では、プロセッサ510は、シングルスレッドプロセッサである。別の実装形態では、プロセッサ510は、マルチスレッドプロセッサである。プロセッサ510は、メモリ520または記憶デバイス530に記憶された命令を処理することができる。
メモリ520は、システム500内に情報を記憶する。一実装形態では、メモリ520は、コンピュータ可読媒体である。いくつかの実装形態では、メモリ520は、揮発性メモリユニットである。別の実装形態では、メモリ520は、不揮発性メモリユニットである。
記憶デバイス530は、システム500に大容量ストレージを提供することができる。いくつかの実装形態では、記憶デバイス530は、コンピュータ可読媒体である。様々な異なる実装形態では、記憶デバイス530は、たとえば、ハードディスクデバイス、光ディスクデバイス、複数のコンピューティングデバイス(たとえば、クラウド記憶デバイス)によってネットワーク上で共有される記憶デバイス、または何らかの他の大容量ストレージデバイスを含むことができる。
入力/出力デバイス540は、システム500の入力/出力動作を提供する。いくつかの実装形態では、入力/出力デバイス540は、ネットワークインターフェースデバイスのうちの1つまたは複数、たとえばEthernetカード、シリアル通信デバイス、たとえばRS-232ポート、および/またはワイヤレスインターフェースデバイス、たとえば802.11カードを含むことができる。別の実装形態では、入力/出力デバイスは、入力データを受信し、出力データを周辺デバイス560、たとえば、キーボード、プリンタ、およびディスプレイデバイスに送信するように構成されたドライバデバイスを含むことができる。しかしながら、モバイルコンピューティングデバイス、モバイル通信デバイス、セットトップボックステレビクライアントデバイスなど、他の実装も使用することができる。
図5には例示的な処理システムが記載されているが、本明細書に記載された主題および機能的動作の実装は、他のタイプのデジタル電子回路、または本明細書に開示された構造およびそれらの構造的均等物を含むコンピュータソフトウェア、ファームウェア、もしくはハードウェア、またはそれらの1つもしくは複数の組合せに実装することができる。
本明細書に記載された主題および動作の実施形態は、デジタル電子回路、または本明細書に開示された構造およびそれらの構造的均等物を含むコンピュータソフトウェア、ファームウェア、もしくはハードウェア、またはそれらの1つもしくは複数の組合せに実装することができる。本明細書に記載された主題の実施形態は、1つまたは複数のコンピュータプログラム、すなわち、データ処理装置によって実行される、またはデータ処理装置の動作を制御するためのコンピュータ記憶媒体上に符号化されたコンピュータプログラム命令の1つまたは複数のモジュールとして実装することができる。代替的にまたは追加として、プログラム命令は、人工的に生成された伝搬信号、たとえば、データ処理装置によって実行するための適切な受信機装置への送信のために情報を符号化するために生成された機械生成電気、光学、または電磁信号上で符号化することができる。コンピュータ記憶媒体は、コンピュータ可読記憶デバイス、コンピュータ可読記憶基板、ランダムまたはシリアルアクセスメモリアレイまたはデバイス、あるいはそれらの1つまたは複数の組合せであり得、またはそれに含まれ得る。さらに、コンピュータ記憶媒体は伝搬信号ではないが、コンピュータ記憶媒体は、人工的に生成された伝搬信号に符号化されたコンピュータプログラム命令の送信元または宛先とすることができる。コンピュータ記憶媒体はまた、1つまたは複数の別々の物理的構成要素または媒体(たとえば、複数のCD、ディスク、または他の記憶デバイス)であり得、またはそれに含まれ得る。
本明細書で説明されている動作は、1つまたは複数のコンピュータ可読記憶デバイスに記憶されている、または他のソースから受信されたデータに対してデータ処理装置によって実行される動作として実装することができる。
「データ処理装置」という用語は、例として、プログラマブルプロセッサ、コンピュータ、システムオンチップ、またはそれらの複数、あるいは上記の組合せを含む、データを処理するためのあらゆる種類の装置、デバイス、およびマシンを包含する。装置は、たとえば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)などの専用論理回路を含むことができる。装置は、ハードウェアに加えて、当該のコンピュータプログラムの実行環境を作成するコード、たとえば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、クロスプラットフォームランタイム環境、仮想マシン、またはそれらのうちの1つもしくは複数の組合せを構成するコードも含むことができる。装置および実行環境は、ウェブサービス、分散コンピューティング、およびグリッドコンピューティングインフラストラクチャなど、様々な異なるコンピューティングモデルインフラストラクチャを実現することができる。
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとも呼ばれる)は、コンパイルまたはインタープリタ型言語、宣言型または手続き型言語を含む任意の形式のプログラミング言語で記述することができ、スタンドアロンプログラムとして、またはコンピューティング環境での使用に適したモジュール、構成要素、サブルーチン、オブジェクト、または他のユニットとしてを含む任意の形式で配置することができる。コンピュータプログラムは、必ずしも必要はないが、ファイルシステム内のファイルに対応し得る。プログラムは、(たとえば、マークアップ言語文書に記憶された1つまたは複数のスクリプトなど)他のプログラムまたはデータを保持するファイルの一部に、当該のプログラム専用の単一のファイルに、または、(たとえば、1つまたは複数のモジュール、サブプログラム、もしくはコードの一部を記憶するファイルなど)複数のコーディネートされたファイルに、記憶することができる。コンピュータプログラムは、1つのコンピュータ上で、または1つのサイトに位置するか、もしくは複数のサイトに分散され、通信ネットワークによって相互接続された複数のコンピュータ上で実行されるように展開することができる。
本明細書に記述されたプロセスおよび論理フローは、入力データ上で動作し、出力を生成することによってアクションを実行するために、1つまたは複数のコンピュータプログラムを実行する1つまたは複数のプログラム可能プロセッサによって実行することができる。プロセスおよび論理フローはまた、たとえば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)などの専用論理回路によっても実行することができ、装置を専用論理回路として実装することもできる。
コンピュータプログラムの実行に適したプロセッサは、例として汎用マイクロプロセッサと専用マイクロプロセッサの両方を含む。一般に、プロセッサは、読取り専用メモリまたはランダムアクセスメモリまたはその両方から命令およびデータを受信する。コンピュータの必須要素は、命令に従ってアクションを実行するためのプロセッサ、ならびに命令およびデータを記憶するための1つまたは複数のメモリデバイスである。一般に、コンピュータは、たとえば磁気、光磁気ディスク、または光ディスクなど、データを記憶するための1つまたは複数の大容量記憶デバイスも含み、あるいは、1つまたは複数の大容量記憶デバイスからデータを受信する、それにデータを転送する、またはその両方のために動作可能に結合される。しかしながら、コンピュータはそのようなデバイスを有する必要はない。さらに、コンピュータは、別のデバイス、たとえば、ほんのいくつかの例を挙げれば、携帯電話、携帯情報端末(PDA)、モバイルオーディオもしくはビデオプレーヤ、ゲームコンソール、全地球測位システム(GPS)受信機、または(ユニバーサルシリアルバス(USB)フラッシュドライブなどの)ポータブルストレージデバイス中に組み込むことができる。コンピュータプログラム命令およびデータを記憶するのに適したデバイスは例として、たとえば、EPROM、EEPROM、およびフラッシュメモリデバイスなどの半導体メモリデバイス、たとえば、内部ハードディスクまたはリムーバブルディスクなどの磁気ディスク、光磁気ディスク、ならびにCD-ROMおよびDVD-ROMディスクを含むすべての形態の不揮発性メモリ、媒体、およびメモリデバイスを含む。プロセッサおよびメモリは、専用論理回路によって補われる、またはそれに組み込まれ得る。
ユーザとの対話を提供するために、本明細書に記載される主題の実施形態は、ユーザに情報を表示するための、CRT(陰極線管)またはLCD(液晶ディスプレイ)モニタなどのディスプレイデバイス、ならびにキーボードおよび、ユーザがコンピュータに入力を提供することができる、たとえば、マウスまたはトラックボールなどのポインティングデバイスを有するコンピュータ上に実装することができる。他の種類のデバイスを使用して、ユーザとの対話を提供することもでき、たとえば、ユーザに提供されるフィードバックは、たとえば、視覚フィードバック、聴覚フィードバック、または触覚フィードバックなど、任意の形態の感覚フィードバックとすることができ、ユーザからの入力は、音響、音声、または触覚入力を含む任意の形態で受信することができる。加えて、コンピュータは、たとえば、ウェブブラウザから受信された要求に応答して、ユーザのクライアントデバイス上のウェブブラウザにウェブページを送信することによって、ユーザによって使用されるデバイスとの間でドキュメントを送受信することによって、ユーザと対話することができる。
本明細書に記載される主題の実施形態は、たとえばデータサーバとしてのバックエンド構成要素を含む、あるいはアプリケーションサーバなどのミドルウェア構成要素を含む、あるいはたとえば、ユーザが本明細書に記載された主題の実装と対話することができる、グラフィカルユーザインターフェース、もしくはウェブブラウザを有するクライアントコンピュータなどのフロントエンド構成要素、または1つもしくは複数のそのようなバックエンド、ミドルウェア、もしくはフロントエンド構成要素の任意の組合せを含む、コンピューティングシステムにおいて実装することができる。システムの構成要素は、たとえば、通信ネットワークなど、任意の形式または媒体のデジタルデータ通信によって相互接続することができる。通信ネットワークの例は、ローカルエリアネットワーク(「LAN」)およびワイドエリアネットワーク(「WAN」)、インターネットワーク(たとえばインターネット)、およびピアツーピアネットワーク(たとえばアドホックピアツーピアネットワーク)を含む。
コンピューティングシステムは、クライアントおよびサーバを含むことができる。クライアントとサーバとは、一般に、互いに遠隔であり、典型的には、通信ネットワークを介して対話する。クライアントとサーバとの関係は、それぞれのコンピュータ上で実行され、互いにクライアントサーバ関係を有するコンピュータプログラムによって生じる。いくつかの実施形態では、サーバは、データ(たとえば、HTMLページ)をクライアントデバイスに送信する(たとえば、クライアントデバイスと対話しているユーザにデータを表示し、ユーザからユーザ入力を受信するために)。(たとえば、ユーザ対話の結果など)クライアントデバイスにおいて生成されたデータは、サーバにおいてクライアントデバイスから受信することができる。
本明細書は、多くの具体的な実装の詳細を含むが、これらは、いかなる発明の範囲または特許請求される可能性のある範囲に対する限定ではなく、むしろ特定の発明の特定の実施形態に固有の特徴の説明として解釈されるものとする。別個の実施形態の文脈において本明細書で説明されるいくつかの特徴は、単一の実施形態において組み合わせて実装することもできる。逆に、単一の実施形態の文脈で記載されている様々な特徴は、複数の実施形態で別々にまたは任意の適切な部分組合せで実装することもできる。さらに、特徴は、いくつかの組合せで作用するものとして上述されており、当初はそのように請求されている場合があるが、請求された組合せからの1つまたは複数の特徴を、いくつかの場合、組合せから切り取ることができ、請求された組合せは、部分組合せ、または部分組合せの変形を対象とし得る。
同様に、動作が特定の順序で図面に示されているが、これは、そのような動作が、示された特定の順序で、または順番に実行されること、あるいは望ましい結果を達成するために、図示されたすべての動作が実行されることを必要とするものとして理解されないものとする。いくつかの状況では、マルチタスキングおよび並列処理が有利であり得る。さらに、上述した実施形態における様々なシステム構成要素の分離は、すべての実施形態においてそのような分離を必要とするものと理解されないものとし、記述されたプログラム構成要素およびシステムを、一般に、単一のソフトウェア製品に一緒に組み入れることができ、または複数のソフトウェア製品にパッケージ化することができることを理解されたい。
したがって、主題の特定の実施形態が記載されている。他の実施形態は、以下の特許請求の範囲内にある。いくつかの場合、特許請求の範囲に列挙されたアクションは、異なる順序で実行され、依然として望ましい結果を達成することができる。加えて、添付の図面に示されるプロセスは、望ましい結果を達成するために、示された特定の順序または逐次的な順序を必ずしも必要としない。いくつかの実装形態では、マルチタスキングおよび並列処理が有利であり得る。
100 例示的な環境
102 クライアントデバイス
104 ネットワーク
106 コンテンツプラットフォーム
108 コンテンツプロバイダ
112 オペレーティングシステム
114 デバイスストレージ
116 ウェブブラウザ、アプリケーション
118 ネイティブアプリケーション
120 通信ブリッジ
122 ネイティブ層
123 ソフトウェアライブラリ
126 ウェブビュー
127 スクリプト
202 第1のコンテンツページ
204 デジタルコンポーネント
206 スタイラス
210 対話信号
212 環境信頼性データ
304 デジタルコンポーネント
312 応答
314 UID
315 評価結果
316 要求
318 応答
327 スクリプト
500 コンピュータシステム
510 プロセッサ、コンポーネント
520 メモリ、コンポーネント
530 記憶デバイス、コンポーネント
540 入力/出力デバイス、コンポーネント
550 システムバス
560 周辺デバイス

Claims (20)

  1. クライアントデバイス上で起動されたアプリケーションの一部で実行されるウェブビュー内に、デジタルコンポーネントを含む第1のコンテンツページを提供するステップと、
    前記ウェブビュー内で実行されるスクリプトによって、前記デジタルコンポーネントとの1つまたは複数の対話を表す対話信号のセットを検出するステップと、
    前記アプリケーションのネイティブ層と前記ウェブビューとの間の通信ブリッジを介して、前記ウェブビューから前記ネイティブ層内に常駐するソフトウェアライブラリに前記対話信号のセットを転送するステップと、
    前記ソフトウェアライブラリによって、前記対話信号のセットが、自動化された対話の代わりに、前記クライアントデバイスの人間のユーザによる、前記デジタルコンポーネントとの対話を示すかどうかの評価のために、前記対話信号のセットを第1のコンテンツプロバイダに送信するステップと、
    前記ソフトウェアライブラリによって、前記デジタルコンポーネントとの前記1つまたは複数の対話に応答して、前記デジタルコンポーネントによってリンクされ、前記第1のコンテンツプロバイダによって提供される第2のコンテンツページを起動するステップと
    を含み、
    前記ウェブビュー内に、前記デジタルコンポーネントを提供するステップは、
    デジタルコンテンツの要求を第2のコンテンツプロバイダに提供するステップであって、
    前記第2のコンテンツプロバイダは、前記第1のコンテンツプロバイダとは異なり、
    前記要求は、前記ネイティブ層によって前記ウェブビューに割り当てられる前記ウェブビューの一意の識別子を含む、ステップと、
    前記第2のコンテンツプロバイダから、前記デジタルコンポーネントおよび前記一意の識別子を含むデータを受信することに応答して、前記第2のコンテンツプロバイダから受信された前記データが前記一意の識別子を含むことを検証するステップと
    を含む、コンピュータに実装された方法。
  2. 前記ウェブビュー内に、前記デジタルコンポーネントを提供するステップは、
    前記ウェブビュー内で実行される前記スクリプトによって、デジタルコンテンツの前記要求を生成するステップと
    記第2のコンテンツプロバイダへのデジタルコンテンツの前記要求の提供に応答して、前記第2のコンテンツプロバイダから、前記デジタルコンポーネントおよび前記一意の識別子を含む前記データを受信するステップと
    第2のコンテンツプロバイダから受信された前記データが前記一意の識別子を含むことを検証することに応答して、前記ウェブビュー内に、前記デジタルコンポーネントを提供するステップと
    さらに含む、請求項1に記載のコンピュータに実装された方法。
  3. 前記第2のコンテンツページを前記起動するステップは、
    人間のユーザによる対話を示す前記対話信号の前記評価に応答して実行される、請求項1または2に記載のコンピュータに実装された方法。
  4. 前記スクリプトによって、前記通信ブリッジを介して、環境信頼性データの要求を前記ソフトウェアライブラリに送信するステップであって、前記環境信頼性データは、ネイティブアプリケーションおよび前記クライアントデバイスの信頼性を評価するための、前記ネイティブアプリケーションおよび前記クライアントデバイスに関するデータを含む、ステップと、
    前記ソフトウェアライブラリから、前記通信ブリッジを介して、前記環境信頼性データを受信するステップと
    をさらに含む、請求項2または3に記載のコンピュータに実装された方法。
  5. 前記第2のコンテンツプロバイダから受信された前記データが前記一意の識別子を含むことを検証するステップは、
    前記ソフトウェアライブラリによって、前記ウェブビューの前記一意の識別子が、前記第2のコンテンツプロバイダから受信された前記データに含まれていた前記一意の識別子と一致することを決定するステップ、を含む、
    請求項2から4のいずれか一項に記載のコンピュータに実装された方法。
  6. デジタルコンテンツの要求は、環境信頼性データおよび一意の識別子を暗号化することによって生成される暗号化されたデータセットを含む、請求項4または5に記載のコンピュータに実装された方法。
  7. 前記対話信号のセットを前記第1のコンテンツプロバイダに提供するステップは、
    環境信頼性データを前記第1のコンテンツプロバイダに提供するステップをさらに含む、請求項4から6のいずれか一項に記載のコンピュータに実装された方法。
  8. 前記対話信号のセットおよび前記環境信頼性データを前記第1のコンテンツプロバイダに提供するステップは、
    前記対話信号のセットを表すデータおよび前記環境信頼性データを、前記第1のコンテンツプロバイダによって提供され、前記デジタルコンポーネントによってリンクされる前記第2のコンテンツページのユニフォームリソースロケータ(URL)に追加するステップを含む、請求項7に記載のコンピュータに実装された方法。
  9. 前記第2のコンテンツページを起動するステップは、
    ウェブブラウザアプリケーションを起動するステップと、
    前記ウェブブラウザアプリケーション内の前記第2のコンテンツページの前記URLにアクセスするステップと
    を含む、請求項8に記載のコンピュータに実装された方法。
  10. クライアントデバイス上で起動されたアプリケーションの一部で実行されるウェブビュー内に、デジタルコンポーネントを含む第1のコンテンツページを提供することと、
    前記ウェブビュー内で実行されるスクリプトによって、前記デジタルコンポーネントとの1つまたは複数の対話を表す対話信号のセットを検出することと、
    前記アプリケーションのネイティブ層と前記ウェブビューとの間の通信ブリッジを介して、前記ウェブビューから前記ネイティブ層内に常駐するソフトウェアライブラリに前記対話信号のセットを転送することと、
    前記ソフトウェアライブラリによって、前記対話信号のセットが、自動化された対話の代わりに、前記クライアントデバイスの人間のユーザによる、前記デジタルコンポーネントとの対話を示すかどうかの評価のために、前記対話信号のセットを第1のコンテンツプロバイダに送信することと、
    前記ソフトウェアライブラリによって、前記デジタルコンポーネントとの前記1つまたは複数の対話に応答して、前記デジタルコンポーネントによってリンクされ、前記第1のコンテンツプロバイダによって提供される第2のコンテンツページを起動することと
    を含み、
    前記ウェブビュー内に、前記デジタルコンポーネントを提供することは、
    デジタルコンテンツの要求を第2のコンテンツプロバイダに提供することであって、
    前記第2のコンテンツプロバイダは、前記第1のコンテンツプロバイダとは異なり、
    前記要求は、前記ネイティブ層によって前記ウェブビューに割り当てられる前記ウェブビューの一意の識別子を含む、提供することと、
    前記第2のコンテンツプロバイダから、前記デジタルコンポーネントおよび前記一意の識別子を含むデータを受信することに応答して、前記第2のコンテンツプロバイダから受信された前記データが前記一意の識別子を含むことを検証することと
    を含む、システム。
  11. 前記ウェブビュー内に、前記デジタルコンポーネントを提供することは、
    前記ウェブビュー内で実行される前記スクリプトによって、デジタルコンテンツの前記要求を生成することと
    記第2のコンテンツプロバイダへのデジタルコンテンツの前記要求の提供に応答して、前記第2のコンテンツプロバイダから、前記デジタルコンポーネントおよび前記一意の識別子を含む前記データを受信することと
    第2のコンテンツプロバイダから受信された前記データが前記一意の識別子を含むことを検証することに応答して、前記ウェブビュー内に、前記デジタルコンポーネントを提供することと
    さらに含む、請求項10に記載のシステム。
  12. 前記第2のコンテンツページを前記起動することは、人間のユーザによる対話を示す前記対話信号の前記評価に応答して実行される、請求項10または11に記載のシステム。
  13. 前記スクリプトによって、前記通信ブリッジを介して、環境信頼性データの要求を前記ソフトウェアライブラリに送信することであって、前記環境信頼性データは、ネイティブアプリケーションおよび前記クライアントデバイスの信頼性を評価するための、前記ネイティブアプリケーションおよび前記クライアントデバイスに関するデータを含む、送信することと、
    前記ソフトウェアライブラリから、前記通信ブリッジを介して、前記環境信頼性データを受信することと
    をさらに含む、請求項11または12に記載のシステム。
  14. 前記第2のコンテンツプロバイダから受信された前記データが前記一意の識別子を含むことを検証することは、
    前記ソフトウェアライブラリによって、前記ウェブビューの前記一意の識別子が、前記第2のコンテンツプロバイダから受信された前記データに含まれていた前記一意の識別子と一致することを決定すること、を含む、
    請求項11から13のいずれか一項に記載のシステム。
  15. デジタルコンテンツの要求は、環境信頼性データおよび一意の識別子を暗号化することによって生成される暗号化されたデータセットを含む、請求項13または14に記載のシステム。
  16. 前記対話信号のセットを前記第1のコンテンツプロバイダに提供することは、環境信頼性データを前記第1のコンテンツプロバイダに提供することをさらに含む、請求項13から15のいずれか一項に記載のシステム。
  17. 前記対話信号のセットおよび前記環境信頼性データを前記第1のコンテンツプロバイダに提供することは、前記対話信号のセットを表すデータおよび前記環境信頼性データを、前記第1のコンテンツプロバイダによって提供され、前記デジタルコンポーネントによってリンクされる前記第2のコンテンツページのユニフォームリソースロケータ(URL)に追加することを含む、請求項16に記載のシステム。
  18. 前記第2のコンテンツページを起動することは、ウェブブラウザアプリケーションを起動することと、前記ウェブブラウザアプリケーション内の前記第2のコンテンツページの前記URLにアクセスすることとを含む、請求項17に記載のシステム。
  19. 1つまたは複数のデータ処理装置によって実行されると、前記1つまたは複数のデータ処理装置に、
    クライアントデバイス上で起動されたアプリケーションの一部で実行されるウェブビュー内に、デジタルコンポーネントを含む第1のコンテンツページを提供することと、
    前記ウェブビュー内で実行されるスクリプトによって、前記デジタルコンポーネントとの1つまたは複数の対話を表す対話信号のセットを検出することと、
    前記アプリケーションのネイティブ層と前記ウェブビューとの間の通信ブリッジを介して、前記ウェブビューから前記ネイティブ層内に常駐するソフトウェアライブラリに前記対話信号のセットを転送することと、
    前記ソフトウェアライブラリによって、前記対話信号のセットが、自動化された対話の代わりに、前記クライアントデバイスの人間のユーザによる、前記デジタルコンポーネントとの対話を示すかどうかの評価のために、前記対話信号のセットを第1のコンテンツプロバイダに送信することと、
    前記ソフトウェアライブラリによって、前記デジタルコンポーネントとの前記1つまたは複数の対話に応答して、前記デジタルコンポーネントによってリンクされ、前記第1のコンテンツプロバイダによって提供される第2のコンテンツページを起動することと
    を含む動作を実行させる命令を記憶し、
    前記ウェブビュー内に、前記デジタルコンポーネントを提供することは、
    デジタルコンテンツの要求を第2のコンテンツプロバイダに提供することであって、
    前記第2のコンテンツプロバイダは、前記第1のコンテンツプロバイダとは異なり、
    前記要求は、前記ネイティブ層によって前記ウェブビューに割り当てられる前記ウェブビューの一意の識別子を含む、提供することと、
    前記第2のコンテンツプロバイダから、前記デジタルコンポーネントおよび前記一意の識別子を含むデータを受信することに応答して、前記第2のコンテンツプロバイダから受信された前記データが前記一意の識別子を含むことを検証することと
    を含む、コンピュータ可読記憶媒体。
  20. 前記ウェブビュー内に、前記デジタルコンポーネントを提供することは、
    前記ウェブビュー内で実行される前記スクリプトによって、デジタルコンテンツの前記要求を生成することと
    記第2のコンテンツプロバイダへのデジタルコンテンツの前記要求の提供に応答して、前記第2のコンテンツプロバイダから、前記デジタルコンポーネントおよび前記一意の識別子を含む前記データを受信することと
    第2のコンテンツプロバイダから受信された前記データが前記一意の識別子を含むことを検証することに応答して、前記ウェブビュー内に、前記デジタルコンポーネントを提供することと
    さらに含む、請求項19に記載のコンピュータ可読記憶媒体。
JP2021544613A 2020-06-24 2020-06-24 ウェブビュー内のコンテンツおよび対話の検証 Active JP7277593B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2023076771A JP2023120183A (ja) 2020-06-24 2023-05-08 ウェブビュー内のコンテンツおよび対話の検証

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2020/039329 WO2021262159A1 (en) 2020-06-24 2020-06-24 Verifying content and interactions within webviews

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2023076771A Division JP2023120183A (ja) 2020-06-24 2023-05-08 ウェブビュー内のコンテンツおよび対話の検証

Publications (2)

Publication Number Publication Date
JP2022541084A JP2022541084A (ja) 2022-09-22
JP7277593B2 true JP7277593B2 (ja) 2023-05-19

Family

ID=71728874

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2021544613A Active JP7277593B2 (ja) 2020-06-24 2020-06-24 ウェブビュー内のコンテンツおよび対話の検証
JP2023076771A Pending JP2023120183A (ja) 2020-06-24 2023-05-08 ウェブビュー内のコンテンツおよび対話の検証

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2023076771A Pending JP2023120183A (ja) 2020-06-24 2023-05-08 ウェブビュー内のコンテンツおよび対話の検証

Country Status (6)

Country Link
US (1) US20230124545A1 (ja)
EP (1) EP3956787A1 (ja)
JP (2) JP7277593B2 (ja)
KR (1) KR20220000899A (ja)
CN (1) CN114127715A (ja)
WO (1) WO2021262159A1 (ja)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008269364A (ja) 2007-04-20 2008-11-06 Fujitsu Ltd 送信方法、画像送信システム、送信装置及びプログラム
JP2010514070A (ja) 2006-12-19 2010-04-30 ヤフー! インコーポレイテッド 不正なインターネットベースの広告閲覧を検出及び回避する方法
US20100287229A1 (en) 2009-05-05 2010-11-11 Paul A. Lipari System and method for processing user interface events
US20150112892A1 (en) 2012-10-18 2015-04-23 Daniel Kaminsky System and method for detecting classes of automated browser agents
US20170185758A1 (en) 2015-12-28 2017-06-29 Unbotify Ltd. Utilizing Behavioral Features To Identify Bot

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9582598B2 (en) * 2011-07-05 2017-02-28 Visa International Service Association Hybrid applications utilizing distributed models and views apparatuses, methods and systems
US20200242251A1 (en) * 2019-01-24 2020-07-30 Citrix Systems, Inc. Providing application security, validation and profiling to an application

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010514070A (ja) 2006-12-19 2010-04-30 ヤフー! インコーポレイテッド 不正なインターネットベースの広告閲覧を検出及び回避する方法
JP2008269364A (ja) 2007-04-20 2008-11-06 Fujitsu Ltd 送信方法、画像送信システム、送信装置及びプログラム
US20100287229A1 (en) 2009-05-05 2010-11-11 Paul A. Lipari System and method for processing user interface events
US20150112892A1 (en) 2012-10-18 2015-04-23 Daniel Kaminsky System and method for detecting classes of automated browser agents
US20170185758A1 (en) 2015-12-28 2017-06-29 Unbotify Ltd. Utilizing Behavioral Features To Identify Bot

Also Published As

Publication number Publication date
EP3956787A1 (en) 2022-02-23
US20230124545A1 (en) 2023-04-20
JP2022541084A (ja) 2022-09-22
KR20220000899A (ko) 2022-01-04
WO2021262159A1 (en) 2021-12-30
CN114127715A (zh) 2022-03-01
JP2023120183A (ja) 2023-08-29

Similar Documents

Publication Publication Date Title
JP7405995B2 (ja) ユーザ同意フレームワーク
JP7184927B2 (ja) コンテンツプラットフォーム上でのユーザ対話の検証
US11882327B2 (en) Verifying display of third party content at a client device
US11356433B2 (en) System and method for detecting unauthorized activity at an electronic device
JP7319380B2 (ja) ブラウザクッキーを保護する
JP7286004B2 (ja) クライアントデバイスからの通信の完全性の保護
Wang et al. Dcdroid: Automated detection of ssl/tls certificate verification vulnerabilities in android apps
JP7277593B2 (ja) ウェブビュー内のコンテンツおよび対話の検証
JP7074926B1 (ja) コンテンツ要求データの暗号化のためのシステムおよび方法
JP7135210B2 (ja) プライバシー保持アプリケーションおよびデバイスエラー検出
US20240143797A1 (en) Automated revocation system for leaked access credentials
CN116348874B (zh) 使用鉴证令牌的安全归因的方法、系统以及介质
Aggarwal et al. Spying Browser Extensions: Analysis and Detection

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211015

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20211015

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20221031

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230130

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230508

R150 Certificate of patent or registration of utility model

Ref document number: 7277593

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150