(57)【要約】      （修正有）【課題】ユーザ認証の利便性を保ちつつセキュリティリスクを低減する情報処理装置を提供する。【解決手段】認証機能を有するＷｅｂサーバと通信を行う情報処理装置であるＭＦＰは、Ｗｅｂサーバから受信したコンテンツをＷｅｂブラウザ３０２に表示する表示手段と、Ｗｅｂブラウザ３０２で実行するスクリプトを実行するか否か判定する判定手段と、を備える。判定手段は、Ｗｅｂブラウザ３０２に表示されているコンテンツが、Ｗｅｂサーバから受信したコンテンツであると判定した場合に、スクリプトを実行すると判定する。【選択図】図３
2019061389.tif 000002
【特許請求の範囲】
【請求項１】
認証機能を有するサーバと通信を行う情報処理装置であって、
前記サーバから受信したコンテンツをブラウザに表示する表示手段と、
前記ブラウザで実行するスクリプトを実行するか否か判定する判定手段と、を備え、
前記判定手段は、前記ブラウザに表示されているコンテンツが、前記サーバから受信したコンテンツであると判定した場合に、前記スクリプトを実行すると判定する
ことを特徴とする情報処理装置。
【請求項２】
前記判定手段は、前記サーバからコンテンツを受信した際に生成したＩＤと、前記スクリプトを実行する直前に生成したＩＤとを比較して、前記スクリプトを実行するか否か判定することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記判定手段は、比較したＩＤが同一である場合に、前記ブラウザに表示されているコンテンツが、前記サーバから受信したコンテンツであると判定し、前記スクリプトを実行すると判定することを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記ＩＤは、前記コンテンツのＵＲＬに基づいて生成されることを特徴とする請求項２または請求項３に記載の情報処理装置。
【請求項５】
ユーザ名とパスワードとを含むユーザ情報を、前記コンテンツのＵＲＬと紐づけて保存する保存手段をさらに有し、
前記コンテンツは、前記ユーザ情報を入力してユーザの認証を行うためのユーザ認証画面であることを特徴とする請求項１乃至４のいずれか１項に記載の情報処理装置。
【請求項６】
前記スクリプトは、前記ユーザ認証画面に入力された前記ユーザ情報を前記コンテンツのＵＲＬと紐づけて保存する機能を実現するスクリプトであることを特徴とする請求項５に記載の情報処理装置。
【請求項７】
前記スクリプトは、前記ユーザ認証画面においてユーザ情報をオートコンプリートする機能を実現するスクリプトであることを特徴とする請求項５または請求項６に記載の情報処理装置。
【請求項８】
認証機能を有するサーバと通信を行う情報処理装置の制御方法であって、
前記サーバから受信したコンテンツをブラウザに表示する表示工程と、
前記ブラウザで実行するスクリプトを実行するか否か判定する判定工程と、を有し、
前記判定工程では、前記ブラウザに表示されているコンテンツが、前記サーバから受信したコンテンツであると判定した場合に、前記スクリプトを実行すると判定する
ことを特徴とする制御方法。
【請求項９】
請求項１乃至７のいずれか１項に記載の情報処理装置の各手段としてコンピュータを機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理装置の制御方法およびプログラムに関する。
【背景技術】
【０００２】
従来、ＰＣや携帯電話、ＭＦＰなどの情報処理装置がネットワーク上のＷｅｂサーバに接続し、Ｗｅｂサーバ上のＷｅｂアプリケーションから提供される操作画面を情報処理装置が備えるＷｅｂブラウザ上に表示する技術がある。Ｗｅｂアプリケーションには、Ｗｅｂアプリケーションを使用するユーザを認証する機能を有するものがある。ユーザ認証機能を有するＷｅｂアプリケーションを使用する場合、初めに、ユーザ情報を入力するためのフォームを含むＷｅｂコンテンツがＷｅｂアプリケーションからＷｅｂブラウザに提供される。Ｗｅｂブラウザは、受信したＷｅｂコンテンツに基づいて、ユーザ名やパスワード等のユーザ情報の入力画面を表示する。ユーザが表示された画面に対してユーザ情報を入力すると、Ｗｅｂブラウザは、Ｗｅｂアプリケーションに入力済みのユーザ情報をＷｅｂアプリケーションに送信する。そして、Ｗｅｂアプリケーション側でユーザ情報に基づいてユーザ認証が行われる。ユーザ認証を行う際に、Ｗｅｂブラウザに表示される画面に対してユーザ情報を入力する手間の軽減が求められている。特許文献１は、ユーザが複数のＷｅｂアプリケーションを使用する環境にてＷｅｂアプリケーション毎に異なるユーザ情報を全て記憶するシングルサインオンを実現する技術を開示している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−２５７５００号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１では、認証機能を提供するサーバに対してユーザ情報を渡す際に、情報漏えいの恐れがある。そこで、セキュリティ視点でのリスク対策が必要となる。
【０００５】
本発明は、ユーザ認証の利便性を保ちつつセキュリティリスクを低減する情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、本発明の情報処理装置は、認証機能を有するサーバと通信を行う情報処理装置であって、前記サーバから受信したコンテンツをブラウザに表示する表示手段と、前記ブラウザで実行するスクリプトを実行するか否か判定する判定手段と、を備える。前記判定手段は、前記ブラウザに表示されているコンテンツが、前記サーバから受信したコンテンツであると判定した場合に、前記スクリプトを実行すると判定する。
【発明の効果】
【０００７】
本発明によれば、ユーザ認証の利便性を保ちつつセキュリティリスクを低減する情報処理装置を提供することができる。
【図面の簡単な説明】
【０００８】
【図１】情報処理システムの構成例を示す図である。
【図２】ＭＦＰのハードウェアの構成例を示す図である。
【図３】ＭＦＰのソフトウェア構成例を示す図である。
【図４】ユーザ情報の情報管理テーブルの一例を示す図である。
【図５】オートコンプリート機能に関するソースコード例を示す図である。
【図６】ユーザ情報保存機能に関するソースコード例を示す図である。
【図７】ＩＤの一例を示す図である。
【図８】オートコンプリート機能を実現する処理を示したフローチャートである。
【図９】Ｗｅｂブラウザの画面例を示す図である。
【図１０】ユーザ情報保存機能を実現する処理を示したフローチャートである。
【図１１】オートコンプリート機能を実現する処理を示したシーケンス図である。
【図１２】オートコンプリート機能を実現する処理を示したシーケンス図である。
【図１３】ユーザ情報保存機能を実現する処理を示したシーケンス図である。
【図１４】ユーザ情報保存機能を実現する処理を示したシーケンス図である。
【発明を実施するための形態】
【０００９】
図１は、情報処理システムの構成例を示す図である。情報処理システムは、ＭＦＰ（Ｍｕｌｔｉｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ）１００およびＷｅｂサーバ１０３を備える。ＭＦＰ１００とＷｅｂサーバ１０３は、ネットワーク１０１およびインターネット１０２を介して接続されている。
【００１０】
ＭＦＰ１００は、ＷｅｂブラウザなどのＷｅｂコンテンツを表示できる機能を有する画像処理装置である。なお、ＭＦＰ１００は、ＷｅｂブラウザなどのＷｅｂコンテンツを表示できる機能を有する情報処理装置であればよく、ＭＦＰに限定されるものではない。
Ｗｅｂサーバ１０３は、利用者を認証する機能を有している。利用者を認証するために、Ｗｅｂサーバ１０３は、ＭＦＰ１００からのリクエストに応じて認証用の画面を表示するためのＨＴＭＬファイルを含むＷｅｂコンテンツをネットワーク経由でＭＦＰ１００に返す。なお、Ｗｅｂサーバ１０３は、単体のコンピュータに限らず、ラックマウント型の複数台のコンピュータで構成されたシステムであっても構わない。
【００１１】
ネットワーク１０１は、各装置間で通信を行うための基盤であって、インターネット１０２に接続されている。ネットワーク１０１上で、ＭＦＰ１００は、ローカルなＩＰアドレスで管理されていても良い。ＩＰアドレスにより管理が行われる場合、ネットワーク１０１とＭＦＰ１００の間にゲートウェイ（不図示）が存在し、ゲートウェイはアドレス変換を行う。ゲートウェイには、例えばルーターが含まれる。ゲートウェイやＭＦＰ１００は、ファイアウォール機能を備えていてもよい。なお、ＭＦＰ１００、Ｗｅｂサーバ１０３およびネットワーク１０１は、インターネットに必ずしも接続されている必要はなく、ローカルネットワーク上に存在してもよい。
【００１２】
図２は、ＭＦＰ１００のハードウェアの構成例を示す図である。ＭＦＰ１００は、ＣＰＵ２０１、ＲＡＭ２０２、記憶装置２０３、ユーザ入力装置２０４、ＵＩ表示装置２０５およびネットワーク装置２０６を備える。ＣＰＵ２０１、ＲＡＭ２０２、記憶装置２０３、ユーザ入力装置２０４、ＵＩ表示装置２０５およびネットワーク装置２０６は、メインバス２００を介して互いに接続されている。
【００１３】
ＣＰＵ２０１は、各種プログラムを実行してメインバス２００に接続される各ハードウェアを総括的に制御し、ＭＦＰ１００全体を制御する中央処理装置である。ＲＡＭ２０２は、ＣＰＵ２０１の主メモリー、ワークエリア等として機能する。記憶装置２０３は、プログラムや様々な設定を記憶している。記憶装置２０３は、例えば、ＨＤＤ、ＳＳＤ、ＮＶＲＡＭなどである。
【００１４】
ユーザ入力装置２０４は、ユーザがコマンド等の入力を行う入力装置である。ＵＩ表示装置２０５は、画面表示を行うＵＩである。なお、静電方式や感圧方式等を利用したタッチ操作可能な操作パネルのように、ＵＩ表示装置２０５がユーザ入力装置２０４を兼ねても良い。ネットワーク装置２０６は、他機器とネットワークによる通信を行う。ＭＦＰ１００では、図示の構成要素以外に画像読取装置や画像印刷装置がメインバス２００に接続されていても良い。
【００１５】
Ｗｅｂサーバ１０３も、ＭＦＰ１００と同様のハードウェア構成を有する。なお、Ｗｅｂサーバ１０３では、ユーザ入力装置２０４やＵＩ表示装置２０５を必ずしも有する必要はない。
【００１６】
図３は、ＭＦＰ１００のソフトウェア構成例を示す図である。ＭＦＰ１００は、ソフトウェアのモジュール群を搭載している。モジュール群は、ＭＦＰ１００内のＣＰＵ２０１によりプログラムとして実行される。ＭＦＰ１００は、Ｗｅｂブラウザ３０２、ＩＤ生成モジュール３０５およびＷｅｂブラウザ連携モジュール（以下、連携モジュールという）３０６を有する。ＭＦＰ１００は、さらに、ＪａｖａＳｃｒｉｐｔ（登録商標）ファイル群３０７およびユーザ情報群３０８を有する。
【００１７】
Ｗｅｂブラウザ３０２は、ＨＴＭＬレンダリングエンジン３０３とＪａｖａＳｃｒｉｐｔエンジン３０４を有する。Ｗｅｂブラウザ３０２は、ユーザの操作を起点として、Ｗｅｂサーバ１０３からＷｅｂコンテンツ３００を受信する。Ｗｅｂコンテンツ３００には、ＨＴＭＬファイル３０１が含まれる。Ｗｅｂブラウザ３０２は、受信したＷｅｂコンテンツ３００に含まれるＨＴＭＬファイル３０１をＨＴＭＬレンダリングエンジン３０３にてレンダリングし、その結果をＵＩ表示装置２０５に表示する。また、ＨＴＭＬファイル３０１にＪａｖａＳｃｒｉｐｔ記述を含む場合、Ｗｅｂブラウザ３０２は、ＪａｖａＳｃｒｉｐｔエンジン３０４にてＪａｖａＳｃｒｉｐｔを実行し、処理結果をＵＩ表示装置２０５に表示することもできる。ＵＩ表示装置２０５に表示するＷｅｂコンテンツの内容は、例えば、ユーザ認証のためのログイン画面などである。
【００１８】
ＩＤ生成モジュール３０５は、Ｗｅｂブラウザ３０２や連携モジュール３０６からの要求に基づいて、ユニークなＩＤを発行することができる。なお、このＩＤ生成モジュール３０５は、Ｗｅｂブラウザ３０２や連携モジュール３０６の中に機能として存在してもよく、独立モジュールであることに限られない。
【００１９】
連携モジュール３０６は、Ｗｅｂブラウザ３０２で実行するためのＪａｖａＳｃｒｉｐｔファイル群３０７を管理する機能と、ユーザ認証に関するユーザ名やパスワードなどのユーザ情報群３０８を管理する機能を有している。連携モジュール３０６は、ＪａｖａＳｃｒｉｐｔファイルやユーザ情報をＷｅｂブラウザ３０２と相互にやり取りすることが可能である。また、連携モジュール３０６は、Ｗｅｂコンテンツ３００をロードし表示が完了した等のＷｅｂブラウザ３０２の状態認知や、Ｗｅｂブラウザ３０２上に表示されているボタンが押された等のイベント検知も可能である。
【００２０】
Ｗｅｂブラウザ連携モジュール３０６が管理するＪａｖａＳｃｒｉｐｔファイル群３０７およびユーザ情報群３０８は、ＭＦＰ１００内に保持されるだけでなく、ネットワークを介した外部コンピュータ等に格納されていてもよい。なお、Ｗｅｂコンテンツ３００はＷｅｂサーバ１０３が提供するものに限定したものではない。また、Ｗｅｂサーバ１０３の形態もＨＴＴＰプロトコルに従ってリクエスト／レスポンスを送受信するＷｅｂサーバに限定するものではない。また、各ソフト・モジュール群を実装するための言語は、Ｊａｖａ（登録商標）やＣなど特定の言語に限定するものではない。
【００２１】
図４は、ユーザ情報群３０８の情報管理テーブルの一例を示す図である。情報管理テーブルでは、少なくともユーザ情報を利用するＵＲＬを示すＵＲＬ情報４００、ユーザ名４０１およびパスワード４０２が紐づけて管理されている。情報管理テーブルの情報は、連携モジュール３０６が追加・削除・編集することができる。
【００２２】
図５は、オートコンプリート機能に関するＪａｖａＳｃｒｉｐｔのソースコードの一例を示す図である。オートコンプリート機能に関するＪａｖａＳｃｒｉｐｔのソースコードであるＪａｖａＳｃｒｉｐｔ５００は、ＪａｖａＳｃｒｉｐｔファイル群３０７に含まれている。ＪａｖａＳｃｒｉｐｔ５００は、ユーザ認証画面においてユーザ情報の入力を補完するオートコンプリート機能を実現するスクリプト（ソースコード）である。
【００２３】
まず、連携モジュール３０６が、Ｗｅｂブラウザ３０２にオートコンプリート機能に関するＪａｖａＳｃｒｉｐｔ５００を渡す。ＪａｖａＳｃｒｉｐｔ５００を受け取ったＷｅｂブラウザ３０２は、ＪａｖａＳｃｒｉｐｔエンジン３０４にてＪａｖａＳｃｒｉｐｔ５００を実行する。ＪａｖａＳｃｒｉｐｔ５００を実行することにより、Ｗｅｂブラウザ３０２が表示しているユーザ認証画面内の要素に対して、ユーザ名やパスワード等のユーザ情報を補完しオートコンプリートを実現する。なお、ここで示したソースコードは一例であり、表示するＷｅｂコンテンツを構成する要素に応じてユーザ情報をオートコンプリートするものであればよい。
【００２４】
図６は、ユーザ情報保存機能に関するＪａｖａＳｃｒｉｐｔのソースコードの一例を示す図である。ユーザ情報保存機能に関するＪａｖａＳｃｒｉｐｔのソースコードであるＪａｖａＳｃｒｉｐｔ６００は、ＪａｖａＳｃｒｉｐｔファイル群３０７に含まれている。ＪａｖａＳｃｒｉｐｔ６００は、ユーザ認証画面に含まれるユーザ情報を連携モジュール３０６に通知する機能を実現するスクリプト（ソースコード）である。
【００２５】
まず、連携モジュール３０６が、Ｗｅｂブラウザ３０２にユーザ情報保存機能に関するＪａｖａＳｃｒｉｐｔ６００を渡す。ＪａｖａＳｃｒｉｐｔ６００を受け取ったＷｅｂブラウザ３０２は、ＪａｖａＳｃｒｉｐｔエンジン３０４にてＪａｖａＳｃｒｉｐｔ６００を実行する。その後、Ｗｅｂブラウザ３０２が表示しているユーザ認証画面をユーザが操作し、Ｗｅｂサーバ１０３に対してｓｕｂｍｉｔするタイミングを検知する。その際、ユーザ認証画面の要素に含まれるユーザ名やパスワード等のユーザ情報を連携モジュール３０６に通知する。通知は、例えば、ＸＭＬＨｔｔｐＲｅｑｕｅｓｔ通信などにより行われる。通知を受けた連携モジュール３０６は、ユーザ情報群３０８の情報管理テーブルに対して必要な情報を保存する。なお、ここで示したソースコードは一例であり、表示するＷｅｂコンテンツを構成する要素に応じてユーザ情報を連携モジュール３０６に通知するものであればよい。
【００２６】
図７は、ＩＤ生成モジュール３０５が発行するユニークなＩＤの一例を示す図である。本実施形態においては、ＩＤ発行時の時間７００とＵＲＬ情報７０１を合わせた文字列によりＩＤを構成している。ＩＤ発行時の時間７００の例としては、種々の処理時間によるずれを考慮し、年月日と時間までとしてもよい。なお、ＩＤはＷｅｂコンテンツのＵＲＬを一意に区別できるものであればよく、例えば、ＵＵＩＤ（Ｕｎｉｖｅｒｓａｌｌｙ  Ｕｎｉｑｕｅ  Ｉｄｅｎｔｉｆｉｅｒ）や文字列を利用して生成したハッシュ値とすることも可能である。
【００２７】
図８は、ユーザ認証画面においてオートコンプリートを実現する処理を示したフローチャートである。本フローチャートでは、ＷＥＢブラウザ３０２がＷｅｂサーバ１０３から取得したユーザ認証画面であるＷｅｂコンテンツを表示してから、オートコンプリートに関するＪａｖａＳｃｒｉｐｔを実行するまでの処理を説明する。ＭＦＰ１００のＷＥＢブラウザ３０２が、ユーザ操作によってＷｅｂサーバ１０３へのアクセス指示を受けると、本フローチャートが開始される。
【００２８】
ステップＳ８００にて、ＷＥＢブラウザ３０２は、ＩＤ生成モジュール３０５を利用してＩＤを発行し、ステップＳ８０１へ進む。発行するＩＤは、例えば“２０１７−０８−１６１２ｈｔｔｐ：／／ｗｗｗ．ｗｅｂａｐｐＡ．ｃｏｍ”となる。
ステップＳ８０１にて、ＷＥＢブラウザ３０２は、Ｗｅｂサーバ１０３からＷｅｂコンテンツ３００を取得するロード処理を行い、ステップＳ８０２へ進む。本実施形態においては、Ｗｅｂコンテンツ３００としてユーザ認証画面を取得するものとして説明する。
ステップＳ８０２にて、ＷＥＢブラウザ３０２は、Ｗｅｂサーバ１０３から取得したＷｅｂコンテンツ３００の表示処理を行い、ステップＳ８０３へ進む。
【００２９】
ステップＳ８０３にて、ＷＥＢブラウザ３０２は、Ｗｅｂコンテンツ３００の表示処理が正常にできたかを確認する。表示処理が正常に行われた場合はステップＳ８０４に進む。一方、それ以外の場合はステップＳ８１０に進んでエラー処理を行い、本フローチャートの処理を終了する。
ステップＳ８０４にて、ＷＥＢブラウザ３０２は、連携モジュール３０６に対してＷｅｂコンテンツ３００の表示処理が正常に完了した旨をＵＲＬ情報と共に通知し、ステップＳ８０５に進む。
【００３０】
ステップＳ８０５にて、連携モジュール３０６は、ＷＥＢブラウザ３０２から受けた通知に含まれるＵＲＬ情報に基づいて、ユーザ情報群３０８にＵＲＬと紐づくユーザ名とパスワードがあるか否かを確認する。ＵＲＬと紐づくユーザ名とパスワードがある場合はステップＳ８０６へ進み、ない場合は本フローチャートの処理を終了する。
ステップＳ８０６にて、連携モジュール３０６は、ステップＳ８０５で確認したユーザ名とパスワードを含むオートコンプリート機能に関するＪａｖａＳｃｒｉｐｔ５００をＷＥＢブラウザ３０２に送付し、ステップＳ８０７に進む。
【００３１】
ステップＳ８０７にて、ＷＥＢブラウザ３０２は、オートコンプリート処理を行う直前に、再度ＩＤ生成モジュール３０５を利用してＩＤを発行し、ステップＳ８０８へ進む。発行するＩＤは、例えば“２０１７−０８−１６１２ｈｔｔｐ：／／ｗｗｗ．ｗｅｂａｐｐＡ．ｃｏｍ”となる。
ステップＳ８０８にて、ＷＥＢブラウザ３０２は、ステップＳ８００で発行したＩＤとステップＳ８０７で発行したＩＤとを比較する。比較結果が同一であった場合、ＷｅｂコンテンツのＵＲＬは変わっておらず、現在表示しているＷｅｂコンテンツがＷｅｂサーバ１０３から配信されたものであると判定する。すなわち、ＪａｖａＳｃｒｉｐｔ５００を実行しても安全であると判定し、ステップＳ８０９へ進む。一方、結果が同一でなかった場合、現在表示しているＷｅｂコンテンツのＵＲＬは変わっており、ＪａｖａＳｃｒｉｐｔ５００を実行するには危険と判定し、ステップＳ８１０へ進みエラー処理を行い、本フローチャートの処理を終了となる。
【００３２】
ステップＳ８０９にて、ＷＥＢブラウザ３０２は、ステップＳ８０６で連携モジュール３０６から受信したオートコンプリート機能に関するＪａｖａＳｃｒｉｐｔ５００を実行し、オートコンプリート処理を行う。オートコンプリート処理により、ユーザ認証画面には、ユーザ名とパスワードが表示される。
本フローチャートを実施することで、ユーザ認証画面に対してオートコンプリートする際の安全性を確認することができ、セキュリティリスクを低減できる。
【００３３】
図９は、ユーザ認証画面の一例を示す図である。ステップＳ８００からＳ８０３までの処理がなされた後、Ｗｅｂブラウザ３０２には、画面例９００に示されるユーザ認証画面が表示される。この画面例９００に対して、ステップＳ８０４以降の処理がなされる。ＵＲＬに紐づくユーザ名とパスワードが存在し、さらに、ステップＳ８０８でＩＤが同一であり安全と判断された場合、オートコンプリート機能に関するＪａｖａＳｃｒｉｐｔ５００を実行することで、ユーザ名とパスワードが補完される。画面例９０１は、オートコンプリート後のユーザ名とパスワードが補完された状態のユーザ認証画面を示している。
【００３４】
ステップＳ８０８で、ステップＳ８００で発行したＩＤと前述のステップＳ８０７で発行したＩＤを比較した結果が同一でなかった場合、現在表示しているＷｅｂコンテンツのＵＲＬは変わっておりＪａｖａＳｃｒｉｐｔを実行するには危険と判定される。この際、ステップＳ８１０のエラー処理で、ＭＦＰの操作者であるユーザに対してオートコンプリートを実行するか否かの判断を促す画面例９０２を表示してもよい。なお、画面例９０２の表示内容はユーザに対して判断を促すような画面構成や文言を表示できればよく、その内容を限定するものではない。
【００３５】
図１０は、ユーザ認証画面に入力されたユーザの情報を保存する処理を示すフローチャートである。本フローチャートでは、ＷＥＢブラウザ３０２がＷｅｂサーバ１０３から取得したユーザ認証画面であるＷｅｂコンテンツを表示してから、ユーザの情報を保存するまでの処理を説明する。ＭＦＰ１００上のＷＥＢブラウザ３０２が、ユーザ操作によってＷｅｂサーバ１０３へのアクセス指示を受けると、本フローチャートが開始される。
【００３６】
ステップＳ１０００にて、ＷＥＢブラウザ３０２は、ＩＤ生成モジュール３０５を利用してＩＤを発行し、ステップＳ１００１へ進む。
ステップＳ１００１にて、ＷＥＢブラウザ３０２は、Ｗｅｂサーバ１０３からＷｅｂコンテンツ３００を取得すべくロード処理を行い、ステップＳ１００２へ進む。本実施形態においては、Ｗｅｂコンテンツ３００としてユーザ認証画面を取得するものとして説明する。
ステップＳ１００２にて、ＷＥＢブラウザ３０２は、Ｗｅｂサーバ１０３から取得したＷｅｂコンテンツ３００の表示処理を行い、ステップＳ１００３へ進む。
【００３７】
ステップＳ１００３にて、ＷＥＢブラウザ３０２は、Ｗｅｂコンテンツ３００の表示処理が正常にできたかを確認する。Ｗｅｂコンテンツ３００の表示処理が正常に行われた場合は、ステップＳ１００４に進む。一方、それ以外の場合はステップＳ１０１４に進み、エラー処理を行い、本フローチャートの処理を終了する。
ステップＳ１００４にて、ＷＥＢブラウザ３０２は、連携モジュール３０６に対してＷｅｂコンテンツ３００の表示処理が正常に完了した旨をステップＳ１０００で発行したＩＤと共に通知し、ステップＳ１００５に進む。
【００３８】
ステップＳ１００５にて、連携モジュール３０６は、ユーザ情報保存機能に関するＪａｖａＳｃｒｉｐｔ６００をＷＥＢブラウザ３０２に送付し、ステップＳ１００６に進む。
ステップＳ１００６にて、ＷＥＢブラウザ３０２は、連携モジュール３０６から受信したＪａｖａＳｃｒｉｐｔ６００を実行し、ユーザ認証画面中のＬｏｇｉｎボタンに対してイベントリスナを登録し、ステップＳ１００７へ進む。イベントリスナの登録により、ユーザ認証画面中のＬｏｇｉｎボタンの押下というイベントに対して、ユーザ認証画面中のユーザ名とパスワードを取得し、保存する処理が結びつけられる。
【００３９】
ステップＳ１００７にて、ＷＥＢブラウザ３０２は、ユーザ認証画面に対するユーザ名やパスワードなどユーザの入力操作への画面表示応答処理を行い、ステップＳ１００８へ進む。
ステップＳ１００８にて、ＷＥＢブラウザ３０２は、ユーザ認証画面に対するユーザのＬｏｇｉｎボタン押下操作への画面表示応答処理を行い、ステップＳ１００９へ進む。
ステップＳ１００９にて、ＷＥＢブラウザ３０２は、ステップＳ１００６にて登録されたイベントリスナを利用して連携モジュール３０６にログインボタンが押下されたことを通知し、ステップＳ１０１０へ進む。ログインボタンが押下の通知を受けた連携モジュール３０６は、ユーザ情報保存機能に関するＪａｖａＳｃｒｉｐｔ６００の動作により、ユーザ認証画面に入力されたログイン情報（すなわちユーザ情報）であるユーザ名とパスワードを取得する。
【００４０】
ステップＳ１０１０にて、連携モジュール３０６は、ユーザ情報を保存する処理を行う直前に、ＩＤ生成モジュール３０５を利用してＩＤを発行し、ステップＳ１０１１へ進む。
ステップＳ１０１１にて、連携モジュール３０６は、ステップＳ１００５にてＷＥＢブラウザ３０２から受信したＩＤとステップＳ１０１０で発行したＩＤとを比較する。ＩＤの比較結果が同一であった場合、ＷｅｂコンテンツのＵＲＬは変わっておらず、現在表示しているＷｅｂコンテンツがＷｅｂサーバ１０３から配信されたものであると判定する。すなわち、ユーザ情報の保存処理を実行しても安全であると判定し、ステップＳ１０１２へ進む。一方、ＩＤの比較結果が同一でなかった場合、現在表示しているＷｅｂコンテンツのＵＲＬは変わっており、ユーザ情報を保存するには危険と判定し、ステップＳ１０１３へ進みエラー処理を行い、本フローチャートの処理を終了する。
【００４１】
ステップＳ１０１２にて、連携モジュール３０６は、現在ＷＥＢブラウザ３０２が表示しているユーザ認証画面のＵＲＬとユーザが入力したユーザ名とパスワードを紐づけて、ユーザ情報群３０８に保存し、本フローチャートの処理を終了する。
本フローチャートを実施することで、ユーザ認証画面にユーザが入力した情報を保存する際の安全性を確認することができ、セキュリティリスクを低減できる。
【００４２】
図１１および図１２は、オートコンプリートに関するＪａｖａＳｃｒｉｐｔ実行時のセキュリティ面での安全性を示すシーケンス比較図である。図１１は、本実施形態を適用しなかった場合の処理を示し、図１２は、本実施形態を適用した場合の処理を示している。ここでは、図８を用いて説明した、ＷＥＢブラウザ３０２がＷｅｂサーバ１０３から取得したユーザ認証画面であるＷｅｂコンテンツを表示してから、オートコンプリートに関するＪａｖａＳｃｒｉｐｔ５００を実行するまでの処理を比較している。
【００４３】
ステップＳ１１００からステップＳ１１０１は、ステップＳ８０１と同等の処理（Ｗｅｂコンテンツのロード処理）である。ステップＳ１１０２は、ステップＳ８０２と同等の処理（Ｗｅｂコンテンツの表示処理）である。ステップＳ１１０３は、ステップＳ８０４と同等の処理（認証画面の表示完了通知処理）である。ステップＳ１１０４は、ステップＳ８０５と同等の処理（ＵＲＬに紐づくユーザ名とパスワードの存在確認処理）である。ステップＳ１１０７は、ステップＳ８０６と同等の処理（ＪａｖａＳｃｒｉｐｔ５００送付処理）である。
【００４４】
Ｗｅｂサーバ１０３が汚染されており、ステップＳ１１０５にて悪意のあるＷｅｂコンテンツにリダイレクトしてしまうケースを仮定する。悪意のあるＷｅｂコンテンツにリダイレクトしてしまうと、ユーザが認証を行おうとしているＷｅｂサーバ１０３以外のＷｅｂサーバから悪意のあるＷｅｂコンテンツを受信することとなる。ステップＳ１１０６にて、Ｗｅｂブラウザには悪意のあるＷｅｂコンテンツが表示される。
図１１においては、ステップＳ１１０８にて、オートコンプリートに関するＪａｖａＳｃｒｉｐｔ５００の実行により、表示されている悪意のあるＷｅｂコンテンツにユーザ名とパスワードを補完入力してしまう。その後、ステップＳ１１０９にてユーザ操作によるｓｕｂｍｉｔ処理が行われると、悪意のあるＷｅｂコンテンツ経由でユーザ情報が漏えいしてしまう。
【００４５】
そこで、本実施形態を示した図１２においては、ステップＳ１１１０とステップＳ１１１１を実行する。ステップＳ１１１０は、ステップＳ８００と同等の処理（ＩＤ発行処理）である。ステップＳ１１１１は、ステップＳ８０７およびステップＳ８０８と同等の処理（ＩＤ発行処理およびＩＤ比較処理）である。オートコンプリート機能を実行する前に、ＩＤを比較することで、悪意のあるＷｅｂコンテンツ表示時はＩＤが一致しないことを判断し、オートコンプリートによりユーザ情報が入力されるのを防止することができる。ＩＤが一致しない場合は、オートコンプリートに関するＪａｖａＳｃｒｉｐｔ５００を実行せずに、ステップＳ１１１２にてエラー処理を行う。これによって、オートコンプリートに関するＪａｖａＳｃｒｉｐｔ実行時のセキュリティ面での安全性を担保できる。
【００４６】
図１３および図１４は、ユーザ情報保存時のセキュリティ面での安全性を示すシーケンス比較図である。図１３は、本実施形態を適用しなかった場合の処理を示し、図１４は、本実施形態を適用した場合の処理を示している。ここでは、図９を用いて説明した、ＷＥＢブラウザ３０２がＷｅｂサーバ１０３から取得したユーザ認証画面であるＷｅｂコンテンツを表示してから、ユーザの情報を保存するまでの処理を比較している。
【００４７】
ステップＳ１３００からステップＳ１３０３は、ステップＳ１１００からステップＳ１１０３までと同等の処理である。ステップＳ１３０４およびステップＳ１３０５は、ステップＳ１００５と同等の処理（ユーザ情報保存機能に関するＪａｖａＳｃｒｉｐｔ６００の送付処理）である。ステップＳ１３０６は、ステップＳ１００６と同等の処理（イベントリスナ登録処理）である。ステップＳ１３０７は、ステップＳ１００７と同等の処理（ユーザ名およびパスワードの入力処理）である。ステップＳ１３０８は、ステップＳ１００８と同等の処理（ログインボタン押下処理）である。ステップＳ１３０９は、ステップＳ１００９と同等の処理（イベントリスナによるログインボタン押下通知処理およびログイン情報通知処理）である。
【００４８】
Ｗｅｂサーバ１０３が汚染されており、ステップＳ１３１０にて悪意のあるＷｅｂコンテンツにリダイレクトしてしまうケースを仮定する。悪意のあるＷｅｂコンテンツにリダイレクトしてしまうと、ユーザが認証を行おうとしているＷｅｂサーバ１０３以外のＷｅｂサーバから悪意のあるＷｅｂコンテンツを受信することとなる。ステップＳ１３１１にて、Ｗｅｂブラウザには悪意のあるＷｅｂコンテンツが表示される。
図１３においては、ステップＳ１３１２のＵＲＬ情報取得処理で、連携モジュール３０６は悪意のあるＷｅｂコンテンツのＵＲＬ情報を取得することとなる。そのため、ステップＳ１３１３では、連携モジュール３０６は、ユーザ情報群３０８の情報管理テーブルに悪意のあるＷｅｂコンテンツのＵＲＬ情報とユーザ情報とを紐づけて保存することになり。不正な情報が保存されてしまう。
【００４９】
そこで、本実施形態を適用した図１４では、ステップＳ１３１４〜ステップＳ１３１６を実行する。ステップＳ１３１４は、ステップＳ１０００と同等の処理（ＩＤ発行処理）である。ステップＳ１３１５およびステップ１３１６は、ステップＳ１０１０およびステップＳ１０１１と同等の処理（ＩＤ発行処理およびＩＤ比較処理）である。ユーザ情報保存処理を実行する前に、ＩＤを比較することで、悪意のあるＷｅｂコンテンツ表示時はＩＤが一致しないことを判断し、不正な情報が保存されるのを防止することができる。ＩＤが一致しない場合は、ＵＲＬ情報・ユーザ名・パスワードの保存処理を実行せずに、ステップＳ１３１７にてエラー処理を行う。これによってユーザ情報保存時のセキュリティ面での安全性を担保できる。
【００５０】
以上のように、本実施形態によれば、認証機能を提供するサーバに対してユーザ情報を渡す際にＷｅｂブラウザ上に表示されているコンテンツの安全性を確認できる。これにより、オートコンプリートによるユーザに提供する利便性を保ちつつセキュリティリスクを低減することが可能となる。
【００５１】
（その他の実施例）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【００５２】
以上、本発明の好ましい実施形態について説明したが、本発明は、これらの実施形態に限定されず、その要旨の範囲内で種々の変形および変更が可能である。
【図１】
2019061389.tif 000003
【図２】
2019061389.tif 000004
【図３】
2019061389.tif 000005
【図４】
2019061389.tif 000006
【図５】
2019061389.tif 000007
【図６】
2019061389.tif 000008
【図７】
2019061389.tif 000009
【図８】
2019061389.tif 000010
【図９】
2019061389.tif 000011
【図１０】
2019061389.tif 000012
【図１１】
2019061389.tif 000013
【図１２】
2019061389.tif 000014
【図１３】
2019061389.tif 000015
【図１４】
2019061389.tif 000016