JP2021009492A - クライアント装置及びサーバ装置及びそれらの制御方法及びプログラム、並びに、リモートブラウザシステム - Google Patents

クライアント装置及びサーバ装置及びそれらの制御方法及びプログラム、並びに、リモートブラウザシステム Download PDF

Info

Publication number
JP2021009492A
JP2021009492A JP2019122096A JP2019122096A JP2021009492A JP 2021009492 A JP2021009492 A JP 2021009492A JP 2019122096 A JP2019122096 A JP 2019122096A JP 2019122096 A JP2019122096 A JP 2019122096A JP 2021009492 A JP2021009492 A JP 2021009492A
Authority
JP
Japan
Prior art keywords
information
server
input
client device
web
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.)
Pending
Application number
JP2019122096A
Other languages
English (en)
Inventor
渉 清水
Wataru Shimizu
渉 清水
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2019122096A priority Critical patent/JP2021009492A/ja
Publication of JP2021009492A publication Critical patent/JP2021009492A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)

Abstract

【課題】パスワードなどの所定の種類の情報をウェブサーバに送信する必要がある場合、リモートブラウザサーバを経由することなく、ウェブサーバに送信してウェブの閲覧を継続できるようにするクライアント装置、サーバ装置及びそれらの制御方法、プログラム、リモートブラウザシステムを提供する。【解決手段】リモートブラウザクライアントとして機能するクライアント装置301は、予め設定された種類の情報の入力を促す状態になったことをリモートブラウザサーバとして機能するサーバ装置302から受信した場合、それに対してユーザより入力した情報を保存し、サーバ装置がアクセスしているウェブサーバへのリクエスト送信が必要であることを示す通知及びそのリクエストのパラメータを受け取り、パラメータと保存された情報とを組み合わせて新たなリクエストを生成し、ウェブサーバに送信し、そのレスポンスを受け取り、レスポンスをサーバ装置に転送する。【選択図】図5

Description

本発明は、ウェブページの閲覧技術に関するものである。
近年、多くのネットワークサービスがウェブアプリケーションとして公開されるようになっている。以前は、ウェブアプリケーションの利用にはPC上のウェブブラウザを使うのが一般的だったが、最近ではPC以外の機器から直接使うという要望が高まっており、例えば多くのスマートフォンはウェブブラウザ(以下ブラウザ)の機能を有している。
しかし、ウェブブラウザの機能は非常に多く、汎用性の高いブラウザはCPUやメモリなどの計算機資源への要求が高い。そのため、デジタルカメラやプリンタなどといった計算機資源の乏しい機器にブラウザを搭載するのは困難である。そのため、小型機器でブラウザを動作させる場合は機能の制限されたブラウザが使われることが多い。しかし、そのようなブラウザは、ウェブ標準仕様を完全には満たさないため、ウェブページがうまく表示されない、あるいはウェブアプリケーションを正しく動作させることができないなどの問題が起きる。
低リソース機器でウェブページを閲覧するもう一つの方法として、ブラウザの機能の基本部分を別の機器で行う方法がある。つまり、計算リソースの少ないクライアントでブラウザを動作させるのではなく、ネットワーク上に接続された別の機器(以下リモートブラウザサーバと呼ぶ)でブラウザを実行させてウェブページを描画し、その描画結果の画像を受けとって表示するよう構成するものである。このようにすれば、少ない計算リソースしか有さないクライアントであっても、本来のウェブページを表示できる。また、クライアントの入力情報(キーボード、マウス、タッチパネルなどの入力イベント)をリモートブラウザサーバに送信し、そこで動くブラウザに渡せば、ブラウザの操作も可能になり、あたかもクライアント上でブラウザが動いているように見せることができる。
しかし、パスワード入力を伴うウェブサイトを利用する場合、この方法にはセキュリティ上のリスクがある。ウェブサイトがパスワード入力を要求する場合、ユーザはクライアント機器の入力装置を使ってパスワードを入力することになる。入力装置がキーボードであれば、ユーザはそのウェブサイトのパスワードをキーボードで入力する。そのキー入力情報はクラウドブラウザに送られ、そこで動くブラウザに入力される。つまり、ウェブサイトのパスワードがそのままクラウドブラウザに渡されることになる。あるシステムのパスワードを、無関係な別のサービスにそのまま送るというのは、セキュリティ上好ましくないのは明らかである。
このような、ブラウザエンジンが動作する装置と入力・表示を行う装置を分離して動作するシステムにおいて機密情報も渡されてしまうという問題に対して、機密情報をマスクするという方式がある(特許文献1)。
特許第4923053号公報
しかしながら、上記従来技術はサーバ側にとっての機密情報をクライアントに送らないようにするために描画結果からマスクするものであり、クライアント側(つまりクライアントを操作するユーザ)の機密情報に対する技術ではない。従来技術と同様に、クライアントからサーバに送られる機密情報を変更してしまうと、サーバはその変更された機密情報を使って処理を続けることになる。つまり先の例においては、ウェブサーバに対してユーザが入力したものではないパスワードを送ることになり、想定した動作ではなくなってしまうという問題がある。
本発明はかかる問題に鑑み成されたものであり、パスワードなどの所定の種類の情報をウェブサーバに送信する必要がある場合であっても、リモートブラウザクライアントからリモートブラウザサーバにその情報を送ることなくウェブの閲覧を継続する技術を提供しようとするものである。
この課題を解決するため、例えば本発明のクライアント装置は以下の構成を備える。すなわち、
ネットワーク上のサーバ装置にて動作するブラウザエンジンの描画結果の画像を受け取って表示し、ユーザによる操作に応じた入力情報を前記サーバ装置に送信することで、ウェブページを閲覧・操作するリモートブラウザクライアントとして機能するクライアント装置であって、
所定の種類の情報の入力を促す状態になったこと前記サーバ装置から受信した場合、それに対してユーザより入力した情報をサーバ装置に送ることなく、保持する保持手段と、
前記サーバ装置がアクセスしているウェブサーバへのリクエスト送信が必要であることを示す通知、及び、そのリクエストのパラメータを受け取る受信手段と、
前記受信手段によって受信したパラメータと、前記保持手段によって保存された情報とを組み合わせて新たなリクエストを生成する作成手段と、
前記作成手段によって作成された新たなリクエストを、ウェブサーバに送信し、そのレスポンスを受け取るウェブ通信手段と、
前記ウェブ通信手段によって得られたレスポンスを前記サーバ装置に転送する転送手段とを有する。
本発明によれば、パスワードなどの所定の種類の情報をウェブサーバに送信する必要がある場合であっても、リモートブラウザクライアントからリモートブラウザサーバにその情報を送ることなくウェブの閲覧を継続できる。
リモートブラウザクライアント装置のハードウェア構成図。 リモートブラウザサーバ装置のハードウェア構成図。 リモートブラウザシステムのネットワーク構成図。 リモートブラウザシステムの表示部の表示画面の例を示す図。 リモートブラウザシステムのソフトウェア構成図。 パスワード入力フォームを持つウェブページのHTMLの記述例を示す図。 パスワード入力を行う場合の画面遷移図。 リモートブラウザサーバのパスワード入力メッセージ送信処理のフローチャート。 リモートブラウザクライアントのパスワード入力・保存処理のフローチャート。 パスワード入力フォームを持つフォームを送信する際のパラメータの例を示す図。 リモートブラウザサーバのリクエストチェック・転送処理のフローチャート。 リモートブラウザクライアントのリクエスト送信処理のフローチャート。
以下、添付図面を参照して実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る発明を限定するものでない。実施形態には複数の特徴が記載されているが、これらの複数の特徴の全てが発明に必須のものとは限らず、また、複数の特徴は任意に組み合わせられてもよい。さらに、添付図面においては、同一若しくは同様の構成に同一の参照番号を付し、重複した説明は省略する。
図1は、本実施形態であるリモートブラウザシステムのクライアント(以下RBクライアント)のハードウェア構成図を示す。図2は、実施形態におけるリモートブラウザシステムのサーバ(以下、RBサーバと呼ぶ)のハードウェア構成図を示す。
RBクライアントは、装置の各処理部を繋ぐバス100と、装置全体を制御するCPU(Central Processing Unit)101、変更を必要としないプログラムやパラメータ格納するROM(Read Only Memory)102、外部記憶部などから供給されるプログラムデータを一時記憶するRAM(Random Access Memory)103を有する。また、RBクライアントは、本装置に固定して設置されたハードディスク、着脱可能なフレキシブルディスク(FD)やCompact Disc(CD)などの光ディスク、磁気カードなどを含む外部記憶104、ネットワーク上の他の機器とデータの送受信を行うネットワークインターフェース105、画像や文字などを表示する液晶ディスプレイなどの表示部106、及び、ユーザが操作を行うためのキーボード、マウス、タッチパネルなどの操作部107を有する。
ここで、ネットワークインタフェース105は、有線、無線を問わない。また、タッチパネルは表示部106の表示面上に設けられるものであり、ユーザは画面を見ながら指でタッチすることで、表示されたメニューに対する選択等が行える。
図2のRBサーバにおける参照符号200乃至205は、機能的には図1の参照符号100乃至105と同じである。ただし、RBサーバは、ウェブ標準仕様を満たすに十分な計算リソースを有するのに対し、RBクライアントはRBサーバで生成したウエブページの画像を受信し表示する程度の計算リソースしか有さない。
リモートブラウザシステムのネットワーク構成を図3に示す。RBクライアント301(図1)、RBサーバ302(図2)、及び、ウェブサーバ303はネットワーク304で接続され、相互に通信可能になっている。なお、ウェブサーバ303は一般的なウェブサーバであれば良く、その構成や処理の詳細については記載しない。
上記構成にいて、RBサーバ302が、RBクライアント301からの要求に従って、ウェブサーバ303にアクセスして、受信したウェブ記述ファイル(htmlファイル)を解釈しウェブページの表示用の「画像」を生成する。そしてRBサーバ302は、生成した「画像」をRBクライアント301に送信する。RBクライアント301は、ウェブ記述ファイルの解釈、実行すること無しに、RBサーバ302から受信した「画像」を表示部106に表示するという単純な処理を行うことになる。以下、図4、図5を参照して、リモートブラウザシステムの動作をより詳しく説明する。
図4はRBクライアント301の表示部106に表示される画面の例である。画面上部にアドレスバー401、戻るボタン402、進むボタン403が入りされる。また、404はウェブページの表示領域である。ユーザはこの画面に対して操作部107を操作することになる。
図5はリモートブラウザシステムのソフトウェアモジュール構成と主なデータの流れを示す図である。参照符号“5a”で始まる処理はRBクライアント301におけるCPU101の処理を示す。また、参照符号“5b”で始まる処理はRBサーバ302のCPU201の処理を示す。そして、RBクライアント301、Rbサーバ302、及び、ウェブサーバ303間を結ぶ線は、それぞれの装置が接続しているネットワーク304を介したネットワーク通信を示している。
ユーザがRBクライアント301の画面を見ながら、操作部107を介して何らかの操作を行うと、入力イベント送信部5a02はその操作の種類に応じたメッセージを、ネットワークインタフェース105を介してRBサーバ302のメッセージ処理部5b02に送信する。具体的な操作は、アドレスバーへの入力、戻るボタン押下、進むボタン押下、表示領域への入力の4種類に分けられる。アドレスバー401にURLがされた場合、入力イベント処理部5a02は、そのURLをロードすることを命令するLoadURLメッセージを送信する。また、戻るボタン402が押されたときは、ブラウザの表示履歴を使って1つ前のページに戻ることを命令するGoBackメッセージを送信する。同様に、進むボタンが押されたときは履歴を1つ進むGoForwardメッセージを送信する。
また、表示領域への入力はさらにマウスイベントメッセージとキーボードイベントメッセージがある。表示領域内でマウスカーソルが移動された/ボタンが押された/ボタンが離されたときはそれぞれMouseMove、MouseDown、MouseUpメッセージを送り、マウスの座標値や押されたボタンの種類を通知する。キーボードのキーが押された/離されたときはKeyPress、KeyReleaseメッセージを送る。
RBサーバ301のメッセージ処理部5b02は、受け取ったメッセージをブラウザエンジン5b03に渡す。ブラウザエンジンはウェブサーバからウェブページのデータ(HTML、CSS、JavaScript、画像ファイルなど)を取得してページを描画するものである。一般的なウェブブラウザアプリケーションとは異なり、他のソフトウェアモジュールから操作するためのAPI(Application Programming Interface)を提供する。ブラウザエンジンには例えばWebKitGTK+ Teamが提供するWebKitGTK(http://webkitgtk.org)や、Microsoft Windows(登録商標)に含まれるCHtmlViewなどがある。ブラウザエンジンはLoadURLやGoBackなど、リモートブラウザクライアントから送られるメッセージと同等のAPIを持ち、メッセージ処理部5b02は単に対応するAPIを呼び出すことでブラウザエンジンを制御できる。
ブラウザエンジン5b03はウェブサーバとの通信やページの描画を行うが、より正確には、実際の通信・描画処理は別のモジュールが行う。ネットワーク通信が必要な場合、ブラウザエンジン5b03はHTTP(またはHTTPS)リクエストのパラメータ(送信先URLやリクエストヘッダの情報など)をHTTPクライアント5b06に渡し、実際の通信はHTTPクライアントが行う。描画処理については、2Dグラフィックスライブラリ5b04が直線、ベジェ曲線、文字といった2Dグラフィックスプリミティブのレンダリング機能を提供し、ブラウザエンジンは2Dグラフィックスライブラリに対する描画命令を発行する。
また、ブラウザエンジン5b03は特定の状況が発生もしくはその状況を検出したときに、それを他のソフトウェアモジュールに通知する仕組みを持つ。例えば、ウェブページの遷移などによりページがロードされたとき、表示しているページの特定の要素がフォーカスされたとき、ネットワークリクエストが発生したときなどである。WebKitGTKでは、WebKitWebViewのload−changedシグナルでページのロード状態が変化したことの通知を受けることができる。また、フォーカスを監視したい要素に対してwebkit_dom_event_target_add_event_listener関数を使うことで通知を受けることができる。ネットワークリクエストの発生についてはWebKitWebPageのsend−requestシグナルによって、そのリクエストの情報をコールバック関数で受け取ることができる。さらに、そのコールバック関数の戻り値によって、そのリクエストを実際に送るかどうかを制御することが可能である。フォームチェック部5b01とリクエスト転送部5b07は、これらの機能を利用して特定の要素へのフォーカスと、ネットワークリクエストを監視する。これら処理については後述する。
2Dグラフィックスライブラリ5b04が描画した結果である画像は画像転送部5b05に渡される。画像転送部5b05は、その画像をRBクライアント301の画像受信処理部5a03に送信する。画像受信処理部5a03は、受け取った画像を表示部106の画面中のウェブページ表示領域404内に表示する。このようにして、RBサーバ302側で動作するブラウザエンジンの描画結果の画像をRBクライアントの表示部106で表示することができる。
次に、パスワードなどの機密情報が入力される場合の動作について説明する。例として、図6に示すHTMLによるログインページを用いる。このHTMLには、行601から始まるform要素がある。そして、このform要素の中には、ユーザ名入力用のテキスト入力フォームを示す行602と、パスワード入力フォームを示す行603、そしてこれらの情報をウェブサーバに送信するための送信ボタンを定義する行604が含まれている。なお、本実施形態の技術とは関係のない他の要素については、ここでの説明・表示を省略する。
上記のHTMLを表示すると、図7(a)のようになる(ここで、ユーザ名は入力した状態)。図示の参照符号7a01〜7a03はそれぞれ図6の行602〜604に対応する。
前述のとおり、RBクライアント301側でユーザが何らかの操作を行うと、その操作に対応するメッセージがRBサーバ302に送られ、ブラウザエンジン5b03に渡される。メッセージがマウス・キーボードの入力メッセージの場合、ページ内でフォーカスされる要素が変化することがある。例えば、テキスト入力フォーム上にマウスを移動し、そこでクリックした場合、そのテキスト入力フォームがフォーカスされる。
ユーザがマウス・キーボードを操作すると、ページ中のフォーカスされた要素が変化することがあるが、フォームフォーカスチェック部5b01は、パスワード入力フォームにフォーカスされた場合に通知を受けるよう構成されている。
これは、以下のようにして実現できる。まず、ブラウザエンジン5b03が提供するロード状態変化通知機能を使い、ページがロードされたときに通知を受けるようにしておく。そして、ページロードの通知を受けたとき、そのページに含まれるパスワード入力フォームに対し、フォーカス通知機能をセットしておく。パスワード入力フォームはtype属性が”password”であるinput要素であることから判別できる。このようにしておけば、ブラウザエンジン5b03は、パスワード入力フォームがフォーカスされたとき、フォームフォーカスチェック部5b01にそれを通知できる。
パスワード入力フォームへのフォーカスが通知されたときのフォームフォーカスチェック部5b01の動作を図8に示す。
まず、フォームフォーカスチェック部5b01は、そのページ内におけるそのフォームの一意な識別子を生成する(S801)。もしinput要素にid属性があればその値を利用できる。ない場合は、ランダムな文字列を生成し、そのinput要素にid属性として追加することで代用できる。図6の行603のinput要素はid属性があるため、その値である”pw1”がフォーム識別子となる。次にフォームフォーカスチェック部5b01は、生成されたフォーム識別子を付けてRBクライアント301にパスワード入力メッセージを送る(S802)。そのレスポンスとして文字列を受け取り(S803)、それをパスワード入力フォームに入力する(S804)。なお、RBクライアント301側の動作については後述するが、この文字列は、ユーザが入力した正しいパスワードではない文字列である。そして、フォームフォーカスチェック部5b01は、その文字列とフォーム識別子の組み合わせを外部記憶部204に保存する(S804)。
S802で送られたパスワード入力メッセージは、RBクライアント301のパスワード入力処理部5a01が受信し、ユーザはパスワード入力を行うことになる。この処理の詳細を図9に示す。
まず、パスワード入力処理部5a01は、パスワード入力ウィンドウを生成し、表示部106に表示し、ユーザにパスワードの入力を促す(S901)。図7(b)の参照符号7b01が、このときの表示部106に表示されるパスワード入力を促すウィンドウである。このウィンドウ7b01は、RBクライアント301で作成したウィンドウであり、ブラウザエンジンが作成したものではないことに注意されたい。ここにはパスワード入力フォーム7b02があり、ユーザはここにパスワードを入力する。ここではパスワードとして”MyPassword1”が入力されたとする。パスワード入力処理部5a01は、このパスワードと送られたフォーム識別子を保持する(S902)。具体的には、パスワード入力処理部5a01は、パスワードと送られたフォーム識別子を、外部記憶装置104に保存する。なお保存方法は単純なテキストファイルにすることや、リレーショナルデータベースを使うこともできる。また、外部記憶装置104ではなくRAM上にすることも可能である。
なお、このパスワード入力画面は一般的なウェブブラウザにはない機能であるため、ユーザの混乱を招く可能性がある。そのため、パスワード入力処理部5a01は、参照符号7b03のように、一般的なウェブブラウザとは異なる処理を行っていることをユーザに通知するメッセージを含むウインドウ7b01を生成することが望ましい。
パスワードを保存後、パスワード入力処理部5a01は、ダミー情報をRBサーバ301に送る(S903)。このとき送信するダミー情報は、入力されたパスワードと同じ文字数のダミー文字列とする。これはS804でブラウザエンジンに入力される。
ダミー文字列を入力する第一の理由は、ユーザにとって違和感のない見た目を提供することである。通常、ユーザがパスワード入力フォームに入力すると、そのフォーム内にパスワードを構成する文字の代替シンボル(例えば点)として表示される。もし、S804の処理を行わないと、フォーム内が空のままとなり、ユーザを混乱させる恐れがある。
ダミー文字列を入力する第二の理由は、JavaScriptによるチェックを通過させるためである。ウェブサイトによっては、JavaScriptを使って、入力されたパスワードをブラウザ側でチェックする構成になっており、パスワードが空の場合などにエラーメッセージを出すようになっている。そのため、空ではない何らかの文字列を入れておかないとその後の動作が妨げられてしまう。
ダミー文字列は本当のパスワードとは無関係のものであれば良く、ランダムな文字列でも良い。第一の理由のためには、文字列の長さは本当のパスワードと同じ長さであることが望ましい。そうすれば、図7(c)のように11個の点が表示され、本当のパスワードを入れた場合と同じ見た目になる。また、第二の理由への対応として、使われる文字の種類(大文字・小文字・数字・記号など)を合わせるのが良い。JavaScriptがパスワードをチェックする場合、文字の種類の規則(大文字・小文字・数字を少なくとも1つ以上含むこと、など)をチェックすることが多いためである。従って、“MyPassword1”に対して生成されるダミー文字列は、例えば”FlUzovmetv5”となる。このダミー文字列がRBサーバ302に返される。なお、この段階では、RBサーバ302に渡されたのはダミー文字列のみであり、本当のパスワードは送られていないことに注意されたい。
ユーザ名とパスワードの入力後、ユーザは画面上のSubmitボタンを押す、つまりSubmitボタンのある位置でマウスをクリックする。この場合もその入力イベントはMouseDown、MouseUpメッセージとしてブラウザエンジン5b03に渡される。Submitボタンが押されたときの処理は、そのSubmitボタンを含むform要素の指定に従う。action属性によって送信先URLが指定され、method属性によってHTTPメソッドが指定される。この例では行601のform要素であるため、フォームの内容がproc−login.cgiにPOSTメソッドによって送信される。より具体的には、ブラウザエンジン5b03は、図10に示すパラメータを生成し、それをHTTPクライアント5b06に渡すことでウェブサーバに送る。
ただし前述したとおり、ブラウザエンジンが生成するネットワークリクエストは、実際にHTTPクライアント5b06に渡される前に、コールバック関数としてリクエスト転送部5b07に渡される。このコールバック関数は引数としてそのリクエストのパラメータ、つまり図10の情報を持つ。また、戻り値はブール型である、FALSEを返すと字際のウェブサーバへのリクエスト送信が行われ、TRUEを返すとそのリクエストはキャンセルされ、ウェブサーバには送られなくなる。
このネットワーク送信前通知を受け取ったときのリクエスト転送部5b07の処理を図11に示すフローチャートを参照して説明する。
まず、S1101にて、リクエスト転送部5b07は、S805において保存されたダミー文字列がリクエストパラメータ中にあるかどうかを調べる。ない場合、つまりこのリクエストがパスワードに関する情報を含まない場合は、リクエスト転送部5b07は処理をS1102に進め、ブラウザエンジン5b03にFALSEを返して終了する。FALSEを返すということは、このリクエストはそのままHTTPクライアント5b06に渡されてウェブサーバに303に送られ、ブラウザエンジン5b03はそのレスポンスを得ることになる。
もしダミー文字列と同じものがある場合、リクエスト転送部5b07は、S1103にて、リクエストパラメータ中のダミー文字列をプレースホルダで置き換える。プレースホルダは、後でその箇所を変更する目印となるもので、ここでは“#{placeholer 識別子}”、という形式とする。つまり、パラメータPOST Data2の値は“password1=#{placeholder pw1}”となる。次に、リクエスト転送部5b07は、このパラメータリストとともに、リクエスト代理処理メッセージをRBクライアント301に送信し(S1104)、RBクライアント301からそのレスポンスを受け取る(S1105)。そして、リクエスト転送部5b07は、そのレスポンスをブラウザエンジン5b03に渡す(S1106)。このレスポンスの内容については後述するが、これはHTMLなどを含むHTTPレスポンスであり、渡されたブラウザエンジン5b03は、図10のリクエストに対するレスポンスとして処理を続行できる。最後に、リクエスト転送部5b07は、保存したダミー文字列と識別子を削除した後(S1107)、ブラウザエンジン5b07に対してTRUEを返し、リクエストが直接ウェブサーバ303に送られるのを防ぐ(S1108)。この結果、ブラウザエンジン5b03が送ろうとするHTTPリクエストパラメータ中にパスワード情報がある場合、そのリクエストに対するレスポンスはRBクライアント301から受け取り、そうでなければ直接ウェブサーバから取得することになる。なお、S1107でダミー文字列と識別子を削除するのは、別のページにパスワード入力フォームがあった場合の誤動作を防ぐためである。
リクエスト代理処理メッセージは、RBクライアント301のHTTP代理処理部5a04が受信して処理する。この処理の詳細を図12のフローチャートにしたがって説明する。
まず、HTTP代理処理部5a04は、パラメータリスト中のプレースホルダを探し、そこにある識別子を得る(S1201)。この例では、”pw1”である。次に、HTTP代理処理部5a04は、その識別子に対応するパスワードをパスワードリストから探す(S1202)。パスワードリストはS902の処理で作られているものである。実施形態の場合、HTTP代理処理部5a04は、識別子”pw1”に対応するパスワード”mypassword1”を得ることになる。
次に、HTTP代理処理部5a04は、パラメータリスト中のプレースホルダをそのパスワードで置き換える(S1203)。これにより、本来送られるべきリクエストを構築することができる。得られたパラメータリストを基に、HTTP代理処理部5a04は、ウェブ通信部として機能するHTTPクライアント通知5a05を使ってウェブサーバ303にリクエストを送り、レスポンスを受信する(S1204)。最後に、HTTP代理処理部5a04は、受信したレスポンスをRBサーバ302に送信して終了する(S1205)。このレスポンスは、HTTPヘッダ及びボディをすべて含む。S1204でウェブサーバに送られたリクエストは、RBサーバ302のブラウザエンジン5b03が生成したパラメータを基に、パスワード部分のみユーザが入力した正しいパスワードとなったものである。従って、このリクエストは、リモートブラウザシステムではない通常のブラウザを使用した場合と同一の内容になり、ウェブサーバは正しく処理することができる。また、ウェブサーバのレスポンスを、ヘッダも含めてすべてRBサーバ302に転送してブラウザエンジンに渡すため、ブラウザエンジンもリモートブラウザシステムでない場合と全く同じ振る舞いになる。これにより、以降のページの閲覧・操作時は問題なく行うことができる。
以上のようにして、パスワードを送信する必要があるウェブサイトを、RBサーバ302にパスワードを送ることなく閲覧することが可能になる。
なお、上述したRBサーバ302のブラウザエンジン5b03は、htmlファイルの行603に記述の文字列“password”の有無から機密文書であるか否かの判定を行ったが、要は機密を必要とする所定の種類の情報の入力があるか否かが判定できれば良い。例えば、パスワード以外としては、金融機関の口座番号等、様々である。それ故、かかる判定処理として、機械学習された学習済みモデルを代わりに用いて処理しても良い。その場合には、例えば、その処理部への入力データと出力データとの組合せを学習データとして複数個準備し、それらから機械学習によって知識を獲得し、獲得した知識に基づいて入力データに対する出力データを結果として出力する学習済みモデルを生成する。学習済みモデルは、例えばニューラルネットワークモデルで構成可能である。そして、その学習済みモデルは、前記処理部と同等の処理をするためのプログラムとして、CPUあるいはGPUなどと協働で動作することにより、前記処理部の処理を行う。なお、上記学習済みモデルは、必要に応じて一定の処理後に更新しても良い。
(その他の実施例)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
発明は上記実施形態に制限されるものではなく、発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、発明の範囲を公にするために請求項を添付する。
100、200…バス、101、201…CPU、102、202…ROM、103、203…RAM、104、204…外部記憶装置、105、205…ネットワークインタフェース、106…表示部、107…操作部

Claims (10)

  1. ネットワーク上のサーバ装置にて動作するブラウザエンジンの描画結果の画像を受け取って表示し、ユーザによる操作に応じた入力情報を前記サーバ装置に送信することで、ウェブページを閲覧・操作するリモートブラウザクライアントとして機能するクライアント装置であって、
    所定の種類の情報の入力を促す状態になったこと前記サーバ装置から受信した場合、それに対してユーザより入力した情報をサーバ装置に送ることなく、保持する保持手段と、
    前記サーバ装置がアクセスしているウェブサーバへのリクエスト送信が必要であることを示す通知、及び、そのリクエストのパラメータを受け取る受信手段と、
    前記受信手段によって受信したパラメータと、前記保持手段によって保存された情報とを組み合わせて新たなリクエストを生成する作成手段と、
    前記作成手段によって作成された新たなリクエストを、ウェブサーバに送信し、そのレスポンスを受け取るウェブ通信手段と、
    前記ウェブ通信手段によって得られたレスポンスを前記サーバ装置に転送する転送手段と、
    を有することを特徴とするクライアント装置。
  2. 前記保持手段は、ユーザから入力された情報に代わる、ダミー情報を生成し、前記サーバ装置に送信する手段を含む
    ことを特徴とする請求項1に記載のクライアント装置。
  3. 前記保持手段は、ユーザによる入力が前記サーバ装置には送信されないことを示すメッセージを表示しつつ、ユーザに対して入力を促すことを特徴とする請求項1又は2に記載のクライアント装置。
  4. 前記所定の種類の情報は、パスワードを含む機密に係る情報であることを特徴とする請求項1乃至3のいずれか1項に記載のクライアント装置。
  5. ウェブサーバにアクセスし、ブラウザエンジンによる描画結果の画像をクライアント装置に送信すると共に、当該クライアント装置から入力情報を受け取り、その入力情報を使ってブラウザエンジンを操作することで、クライアント装置に対してウェブページの閲覧に係る操作を可能にするリモートブラウザサーバとして機能するサーバ装置であって、
    ウェブサーバから受信したウェブページに、所定の種類の情報の入力を促す入力フォームの記述がある場合、その入力フォームが前記クライアント装置にてフォーカスされたことを検出する検出手段と、
    該検出手段により前記所定の種類の情報の入力フォームがフォーカスされた場合、所定の入力を行うように前記クライアント装置に通知する通知手段と、
    ブラウザエンジンからウェブサーバに送られるネットワークリクエストのパラメータ中に、前記入力フォームに入力された情報が含まれるかを判定する判定手段と、
    該判定手段によって、ネットワークリクエストのパラメータ中に前記入力フォームに入力された情報が含まれると判定された場合、そのリクエストをウェブサーバに送ることなく、そのパラメータを前記クライアント装置に送る送信手段と、
    前記送信手段で送信したリクエストに対するレスポンスを、前記クライアント装置から受け取り、そのレスポンスを使ってブラウザエンジンを動作させる受信手段と、
    を有することを特徴とするサーバ装置。
  6. 前記所定の種類の情報は、パスワードを含む機密に係る情報であることを特徴とする請求項5に記載のサーバ装置。
  7. ブラウザエンジンを有し、当該ブラウザエンジンによる描画結果の画像をクライアント装置に送信することでリモートブラウザサーバとして機能するサーバ装置と、当該サーバ装置から受信した画像を表示すると共にユーザからの操作を前記サーバ装置に通知することでリモートブラウザクライアントとして機能するクライアント装置とを有するリモートブラウザシステムであって、
    前記クライアント装置は、
    所定の種類の情報の入力を促す状態になったこと前記サーバ装置から受信した場合、それに対してユーザより入力した情報をサーバ装置に送ることなく、保持する保持手段と、
    前記サーバ装置がアクセスしているウェブサーバへのリクエスト送信が必要であることを示す通知、及び、そのリクエストのパラメータを受け取る受信手段と、
    前記受信手段によって受信したパラメータと、前記保持手段によって保存された情報とを組み合わせて新たなリクエストを生成する作成手段と、
    前記作成手段によって作成された新たなリクエストを、ウェブサーバに送信し、そのレスポンスを受け取るウェブ通信手段と、
    前記ウェブ通信手段によって得られたレスポンスを前記サーバ装置に転送する転送手段とを有し、
    前記サーバ装置は、
    ウェブサーバから受信したウェブページに、所定の種類の情報の入力を促す入力フォームの記述がある場合、その入力フォームが前記クライアント装置にてフォーカスされたことを検出する検出手段と、
    該検出手段により前記所定の種類の情報の入力フォームがフォーカスされた場合、所定の入力を行うように前記クライアント装置の前記保持手段に向けて通知する通知手段と、
    ブラウザエンジンからウェブサーバに送られるネットワークリクエストのパラメータ中に、前記入力フォームに入力された情報が含まれるかを判定する判定手段と、
    該判定手段によって、ネットワークリクエストのパラメータ中に前記入力フォームに入力された情報が含まれると判定された場合、そのリクエストをウェブサーバに送ることなく、そのパラメータを前記クライアント装置の前記受信手段に送る送信手段と、
    前記送信手段で送信したリクエストに対するレスポンスを、前記クライアント装置の前記転送手段から受け取り、そのレスポンスを使ってブラウザエンジンを動作させる受信手段とを有する
    ことを特徴とするリモートブラウザシステム。
  8. ネットワーク上のサーバ装置にて動作するブラウザエンジンの描画結果の画像を受け取って表示し、ユーザによる操作に応じた入力情報を前記サーバ装置に送信することで、ウェブページを閲覧・操作するリモートブラウザクライアントとして機能するクライアント装置の制御方法であって、
    所定の種類の情報の入力を促す状態になったこと前記サーバ装置から受信した場合、それに対してユーザより入力した情報をサーバ装置に送ることなく、保持する保持工程と、
    前記サーバ装置がアクセスしているウェブサーバへのリクエスト送信が必要であることを示す通知、及び、そのリクエストのパラメータを受け取る受信工程と、
    前記受信工程によって受信したパラメータと、前記保持工程によって保存された情報とを組み合わせて新たなリクエストを生成する作成工程と、
    前記作成工程によって作成された新たなリクエストを、ウェブサーバに送信し、そのレスポンスを受け取るウェブ通信工程と、
    前記ウェブ通信工程によって得られたレスポンスを前記サーバ装置に転送する転送工程と、
    を有することを特徴とするクライアント装置の制御方法。
  9. ウェブサーバにアクセスし、ブラウザエンジンによる描画結果の画像をクライアント装置に送信すると共に、当該クライアント装置から入力情報を受け取り、その入力情報を使ってブラウザエンジンを操作することで、クライアント装置に対してウェブページの閲覧に係る操作を可能にするリモートブラウザサーバとして機能するサーバ装置の制御方法であって、
    ウェブサーバから受信したウェブページに、所定の種類の情報の入力を促す入力フォームの記述がある場合、その入力フォームが前記クライアント装置にてフォーカスされたことを検出する検出工程と、
    該検出工程により前記所定の種類の情報の入力フォームがフォーカスされた場合、所定の入力を行うように前記クライアント装置に通知する通知工程と、
    ブラウザエンジンからウェブサーバに送られるネットワークリクエストのパラメータ中に、前記入力フォームに入力された情報が含まれるかを判定する判定工程と、
    該判定工程によって、ネットワークリクエストのパラメータ中に前記入力フォームに入力された情報が含まれると判定された場合、そのリクエストをウェブサーバに送ることなく、そのパラメータを前記クライアント装置に送る送信工程と、
    前記送信工程で送信したリクエストに対するレスポンスを、前記クライアント装置から受け取り、そのレスポンスを使ってブラウザエンジンを動作させる受信工程と、
    を有することを特徴とするサーバ装置の制御方法。
  10. コンピュータが読み込み実行することで、前記コンピュータに、請求項8又は9に記載の方法の各工程を実行させるためのプログラム。
JP2019122096A 2019-06-28 2019-06-28 クライアント装置及びサーバ装置及びそれらの制御方法及びプログラム、並びに、リモートブラウザシステム Pending JP2021009492A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2019122096A JP2021009492A (ja) 2019-06-28 2019-06-28 クライアント装置及びサーバ装置及びそれらの制御方法及びプログラム、並びに、リモートブラウザシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019122096A JP2021009492A (ja) 2019-06-28 2019-06-28 クライアント装置及びサーバ装置及びそれらの制御方法及びプログラム、並びに、リモートブラウザシステム

Publications (1)

Publication Number Publication Date
JP2021009492A true JP2021009492A (ja) 2021-01-28

Family

ID=74199984

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019122096A Pending JP2021009492A (ja) 2019-06-28 2019-06-28 クライアント装置及びサーバ装置及びそれらの制御方法及びプログラム、並びに、リモートブラウザシステム

Country Status (1)

Country Link
JP (1) JP2021009492A (ja)

Similar Documents

Publication Publication Date Title
CN106991154B (zh) 网页渲染方法、装置、终端及服务器
US11017052B1 (en) Electronic forms interaction framework for a consistent user experience
US10762277B2 (en) Optimization schemes for controlling user interfaces through gesture or touch
US9507519B2 (en) Methods and apparatus for dynamically adapting a virtual keyboard
CN101615179B (zh) 用于Web应用的跨域交互的方法和系统
US7770122B1 (en) Codeless dynamic websites including general facilities
JP2006185160A (ja) 複数のウェブサイトにパーソナライズされた価値を追加するためのシステム、ウェブサーバ、方法およびプログラム
US10726095B1 (en) Network content layout using an intermediary system
CN104220973A (zh) 信息处理装置和程序
CN102939583A (zh) 创建任务会话
WO2012023346A1 (ja) ウェブ管理装置、ウェブ管理方法、ウェブ管理プログラム、そのプログラムを記録するコンピュータ読み取り可能な記録媒体、及びウェブシステム
US20110035433A1 (en) Webpage display method, computer system, and program
US20170031876A1 (en) Web Page Generation System
US10313483B2 (en) Method and apparatus for providing a dynamic execution environment in network communication between a client and a server
US20050198568A1 (en) Table display switching method, text data conversion program, and tag program
JP6539432B2 (ja) 解析サーバ装置、解析プログラム、ヒートマップ解析システム
JP2003006556A (ja) 帳票処理装置、帳票データ入力装置、帳票入出力システム、帳票定義情報作成装置、プログラム、プログラム記録媒体
JP2009289218A (ja) 情報処理装置、その入力情報の復元方法及び復元プログラム
US20050234838A1 (en) Method and apparatus for providing in place editing within static documents
RU2634221C2 (ru) Способ и устройство для отрисовки представления электронного документа на экране
US10664538B1 (en) Data security and data access auditing for network accessible content
US11586335B2 (en) Graphical user interface marking feedback
JP2021009492A (ja) クライアント装置及びサーバ装置及びそれらの制御方法及びプログラム、並びに、リモートブラウザシステム
US8793342B2 (en) Interpreting web application content
JPWO2020008600A1 (ja) ブラウザ管理システム、ブラウザ管理方法、ブラウザ管理プログラム、およびクライアントプログラム

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20210103

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210113