(57)【要約】【課題】  複数のポートレットを合成してコンテンツを表示する際に、情報の改竄や漏洩の可能性のある命令を含むポートレットの合成を防止して安全にコンテンツの表示を行うことが可能な技術を提供する。【解決手段】  所定の記述言語を用いて記述した複数のポートレットを合成してコンテンツを表示するＷｅｂ表示方法において、所定のコンテンツの表示の際に合成されるポートレットを記憶手段から読み出すステップと、前記読み出したポートレット中に記述されている命令を記憶手段上で抽出してその安全性を検証するステップと、前記読み出したポートレットが安全であると判定された場合に、当該ポートレットをコンテンツ表示用データとして記憶手段上に格納し、安全であると判定された他のポートレットと記憶手段上で合成するステップとを有するものである。【選択図】      図１
2005267605.tif 000002
【特許請求の範囲】
【請求項１】
所定の記述言語を用いて記述した複数のポートレットを合成してコンテンツを表示するＷｅｂ表示方法において、
所定のコンテンツの表示の際に合成されるポートレットを記憶手段から読み出すステップと、前記読み出したポートレット中に記述されている命令を記憶手段上で抽出してその安全性を検証するステップと、前記読み出したポートレットが安全であると判定された場合に、当該ポートレットをコンテンツ表示用データとして記憶手段上に格納し、安全であると判定された他のポートレットと記憶手段上で合成するステップとを有することを特徴とするＷｅｂ表示方法。
【請求項２】
Ｗｅｂブラウザ側処理装置からのＷｅｂ表示要求を通信手段により受信し、そのＷｅｂ表示要求により要求されたコンテンツの安全性を検証して前記コンテンツ表示用データを生成し、通信手段によりＷｅｂブラウザ側処理装置へ応答することを特徴とする請求項１に記載されたＷｅｂ表示方法。
【請求項３】
前記読み出したポートレットが安全であると判定されなかった場合に、当該ポートレットを単体で表示する為の単体表示用データを記憶手段上に生成することを特徴とする請求項１または請求項２のいずれかに記載されたＷｅｂ表示方法。
【請求項４】
前記コンテンツ表示用データの表示とは別に前記単体表示用データを表示する為のスクリプトを記憶手段上で前記コンテンツ表示用データに追加することを特徴とする請求項１乃至請求項３のいずれか１項に記載されたＷｅｂ表示方法。
【請求項５】
前記読み出したポートレットが安全であると判定されなかった場合に、安全であると判定されなかったコンテンツが含まれていることを示す警告メッセージを出力する為のデータを生成して出力手段により出力することを特徴とする請求項１乃至請求項４のいずれか１項に記載されたＷｅｂ表示方法。
【請求項６】
コンテンツの内容の改竄や漏洩が可能である命令を格納した危険命令リスト中の命令と、前記読み出したポートレット中の命令とを記憶手段上で比較することにより、当該ポートレットの安全性を検証することを特徴とする請求項１乃至請求項５のいずれか１項に記載されたＷｅｂ表示方法。
【請求項７】
コンテンツの内容の改竄や漏洩が可能である命令の入力を入力手段により受け付け、その受け付けた命令を前記記憶手段中の危険命令リストに登録することを特徴とする請求項１乃至請求項６のいずれか１項に記載されたＷｅｂ表示方法。
【請求項８】
所定のコンテンツの表示の際に合成される複数のポートレットを記憶手段上で合成してコンテンツテスト用データを生成し、前記コンテンツテスト用データ中の各ポートレットを処理手段により実行してコンテンツの内容の改竄や漏洩が行われるかどうかを調べ、コンテンツの内容の改竄や漏洩が行われない場合に、そのポートレットを安全であると判定することを特徴とする請求項１乃至請求項７のいずれか１項に記載されたＷｅｂ表示方法。
【請求項９】
所定の記述言語を用いて記述した複数のポートレットを合成してコンテンツを表示するＷｅｂ表示装置において、
所定のコンテンツの表示の際に合成されるポートレットを記憶手段から読み出し、前記読み出したポートレットが安全であると判定された場合に、当該ポートレットをコンテンツ表示用データとして記憶手段上に格納し、安全であると判定された他のポートレットと記憶手段上で合成する画面生成処理部と、
前記読み出したポートレット中に記述されている命令を記憶手段上で抽出してその安全性を検証する安全性検証処理部とを備えることを特徴とするＷｅｂ表示装置。
【請求項１０】
所定の記述言語を用いて記述した複数のポートレットを合成してコンテンツを表示するＷｅｂ表示方法をコンピュータに実行させる為のプログラムにおいて、
所定のコンテンツの表示の際に合成されるポートレットを記憶手段から読み出すステップと、前記読み出したポートレット中に記述されている命令を記憶手段上で抽出してその安全性を検証するステップと、前記読み出したポートレットが安全であると判定された場合に、当該ポートレットをコンテンツ表示用データとして記憶手段上に格納し、安全であると判定された他のポートレットと記憶手段上で合成するステップとをコンピュータに実行させることを特徴とするプログラム。
【請求項１１】
所定の記述言語を用いて記述した複数のポートレットを合成してコンテンツを表示するＷｅｂ表示装置において、
ポートレットのセキュリティ属性を格納するポートレット属性テーブルと、前記セキュリティ属性を用いてポートレットの合成可否を記述したアクセスコントロールリストを格納するアクセスコントロールリストテーブルと、
ポートレットの選択を受け付けてポータル画面のレイアウト定義を生成するポータル画面レイアウト定義部と、
前記ポータル画面レイアウト定義部でのポータル画面レイアウト定義においてポートレット追加の操作を受け付けた場合に、当該ポートレットのセキュリティ属性とアクセスコントロールリストを前記ポートレット属性テーブル及びアクセスコントロールリストテーブルからそれぞれ読み出し、それらのセキュリティ属性とアクセスコントロールリストにより、ポートレットを合成しても安全であると判定された場合にのみそのポートレットの追加を許可する安全性検証処理部とを備えることを特徴とするＷｅｂ表示装置。
【請求項１２】
前記請求項１１に記載のＷｅｂ表示装置であって、
Ｗｅｂ表示装置に対して割り当てられているＦＱＤＮと共通のサブドメインとなる副ＦＱＤＮをＷｅｂ表示装置に更に割り当て、安全性検証処理部において不許可とされたポートレットについては、前記副ＦＱＤＮでポートレットを単体表示することを特徴とするＷｅｂ表示装置。
【請求項１３】
前記請求項１１に記載のＷｅｂ表示装置であって、
前記ポータル画面レイアウト定義部において表示される追加候補のポートレットの集合について、前記安全性検証処理部によってアクセスコントロールリスト及び各々のポートレットのセキュリティ属性とを読み出し、合成しても安全であると判定された場合にのみ追加候補として表示することを特徴とするＷｅｂ表示装置。
【請求項１４】
前記請求項１１に記載のＷｅｂ表示装置であって、
前記アクセスコントロールリストを管理者によりポータル利用者の設定まで含めて一括して設定する為のインターフェイスを備えることを特徴とするＷｅｂ表示装置。
【請求項１５】
請求項１４に記載のＷｅｂ表示装置であって、
前記管理者により一括して設定したアクセスコントロールリストについて、ポータル利用者による設定の上書きを受け付けて再定義を行うことを特徴とするＷｅｂ表示装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は所定の記述言語を用いて記述した複数のポートレットを合成してコンテンツを表示する場合に各ポートレットの実行時の安全性を事前に判定するＷｅｂ表示技術に関するものである。
【背景技術】
【０００２】
従来のＷｅｂシステムでは、ブラウザからのアクセスに対してＨＴＭＬ(Hypertext Markup Language)やスクリプト言語で記述されたコンテンツを応答しており、近年では、複数のバックエンドサーバの情報にアクセスして、ポートレットと呼ばれるコンテンツの断片を合成して一つの画面を生成するＷｅｂ表示システムに発展してきている。従来、ポートレットとしては、企業内のＷｅｂ表示システムの管理者が専用のものを用意していたが、ＯＡＳＩＳ(Organization for the Advancement of Structured Information Standards)により策定されたＷＳＲＰ(Web Services for Remote Portlets)により、従来の企業内専用のポートレットだけでなく、企業外の第３者が提供するＷｅｂサービスについても、利用者が自由に選択してポートレットとして利用する形態になってきた（例えば非特許文献１等参照）。
【０００３】
【非特許文献１】Thomas Schaeck著、「WSRP Whitepaper」、［online］、OASIS、2002年9月22日、P.3-7、［平成15年10月6日検索］、インターネット＜URL: http://www.oasis-open.org/committees/download.php/2634/WSRP%20Whitepaper%20-%20rev%202.doc＞
【発明の開示】
【発明が解決しようとする課題】
【０００４】
前記従来のＷｅｂ表示システムにおいてスクリプト言語を使用すると、Ｗｅｂサーバと通信せずに動的な画面表示が可能なため、スクリプト言語は非常に有用な言語であるが、利用者の端末のプロファイル情報やＤＯＭ(Document Object Model)のインタフェースを利用してブラウザに表示したコンテンツを自由に改変したり、他のサーバに通信して情報を伝送することが可能なことから、スクリプト言語にはセキュリティ上の問題があり、ブラウザはスクリプトの実行を無効にする設定や警告メッセージを出力する等で対応している。そのため、現状のＷｅｂ表示システムではスクリプト言語の実行を利用者の判断に任せており、スクリプト言語で記述されたコンテンツを安全に実行するには、利用者が逐次スクリプト言語による記述の解析を行う必要があった。
【０００５】
また、前記従来技術のＷＳＲＰを利用するＷｅｂ表示システムの場合、問題が特に顕著であり、ＷＳＲＰを利用すると、企業内の管理者が作成した従来のポートレット（ローカルポートレット）と、ＷＳＲＰを利用した企業外の第３者が開発したポートレット（リモートポートレット）を一つのＨＴＭＬに合成して表示することになるため、企業内の機密情報を表示したローカルポートレットと、悪意を持ったリモートポートレットとが一つのＨＴＭＬに合成される可能性があり、その悪意を持ったリモートポートレットが機密情報を改変したり、外部のサーバに通信して機密情報を盗み出すことが容易となるという問題があった。
【０００６】
本発明の目的は上記問題を解決し、複数のポートレットを合成してコンテンツを表示する際に、情報の改竄や漏洩の可能性のある命令を含むポートレットの合成を防止して安全にコンテンツの表示を行うことが可能な技術を提供することにある。
【０００７】
本発明の他の目的は複数のポートレットを合成してコンテンツを表示する際に、合成されるポートレット間のセキュリティ属性に応じてアクセス制御を行って安全にコンテンツの表示を行うことが可能な技術を提供することにある。
【課題を解決するための手段】
【０００８】
本発明は、所定の記述言語を用いて記述した複数のポートレットを合成してコンテンツを表示するＷｅｂ表示装置において、記述されている命令の安全性を検証したポートレットを合成してコンテンツを生成するものである。
【０００９】
本発明のＷｅｂ表示装置（計算機や情報処理装置、またはその様な処理を実施するプログラムやオブジェクトでも良い）では、所定の記述言語を用いて記述した複数のポートレットを合成してコンテンツを表示するＷｅｂ表示要求をＷｅｂブラウザ側処理装置から受信すると、そのコンテンツの表示の際に合成されるポートレットを記憶装置から読み出した後、その読み出したポートレット中に記述されている命令を記憶装置上で抽出してその安全性を検証する。
【００１０】
例えば、コンテンツの内容の改竄や漏洩が可能である命令を格納した危険命令リスト中の命令と、前記読み出したポートレット中の命令とを記憶装置上で比較して、前記読み出したポートレット中のどの命令も危険命令リスト中の命令に該当しない場合には前記読み出したポートレットが安全であると判定し、前記読み出したポートレット中の何れかの命令が危険命令リスト中の命令に該当する場合には前記読み出したポートレットが安全ではないと判定することにより、当該ポートレットの安全性を検証する。
【００１１】
前記検証の結果、読み出したポートレットが安全であると判定された場合には、当該ポートレットをコンテンツ表示用データとして記憶装置上に格納し、安全であると判定された他のポートレットと記憶装置上で合成した後、安全であると判定されたポートレットから成るコンテンツ表示用データをＷｅｂブラウザ側処理装置へ送信して表示を行う。
【００１２】
また、前記検証の結果、読み出したポートレットが安全であると判定されなかった場合には、当該ポートレットを単体で表示する為の単体表示用データを記憶装置上に生成し、安全であると判定されたポートレットから成るコンテンツ表示用データの表示とは別に、安全であると判定されなかったポートレットを単体で表示する処理を行って、そのポートレットの内容を確認できる様にしても良い。
【発明の効果】
【００１３】
本発明によれば、複数のポートレットを合成してコンテンツを表示する際に、情報の改竄や漏洩の可能性のある命令を含むポートレットの合成を防止して安全にコンテンツの表示を行うことが可能である。
【発明を実施するための最良の形態】
【００１４】
（実施形態１）
以下に所定の記述言語を用いて記述した複数のポートレットを合成してコンテンツを表示する実施形態１のＷｅｂ表示装置について説明する。
【００１５】
図１は本実施形態のＷｅｂ表示システムの全体構成を示す図である。図１に示す様に本実施形態のＷｅｂポータル処理装置１００は、ポータル画面生成処理部１０６と、安全性検証処理部１０７とを有している。
【００１６】
ポータル画面生成処理部１０６は、コンテンツの表示の際に合成されるポートレットを記憶装置から読み出し、前記読み出したポートレットが安全であると判定された場合に、当該ポートレットをコンテンツ表示用データとして記憶装置上に格納し、安全であると判定された他のポートレットと記憶装置上で合成する処理部である。安全性検証処理部１０７は、ポータル画面生成処理部１０６により読み出されたポートレット中に記述されている命令を記憶装置上で抽出してその安全性を検証する処理部である。
【００１７】
Ｗｅｂポータル処理装置１００をポータル画面生成処理部１０６及び安全性検証処理部１０７として機能させる為のプログラムは、ＣＤ−ＲＯＭ等の記録媒体に記録され磁気ディスク等に格納された後、メモリにロードされて実行されるものとする。なお前記プログラムを記録する記録媒体はＣＤ−ＲＯＭ以外の他の記録媒体でも良い。また前記プログラムを当該記録媒体から情報処理装置にインストールして使用しても良いし、ネットワークを通じて当該記録媒体にアクセスして前記プログラムを使用するものとしても良い。
【００１８】
本実施形態のＷｅｂポータル処理装置１００は、Ｗｅｂブラウザにポータル画面を表示するＷｅｂ表示装置であり、Ｗｅｂブラウザ側処理装置１０１からポータル画面取得要求を受け付けると、Ｗｅｂブラウザ側処理装置１０１が要求したポートレットプログラムを実行し、企業内のメールシステム１０２やデータベース１０３の情報や、インターネット１０４経由でリモートポートレット提供サーバ１０５が提供するリモートポートレットの情報を取得する。
【００１９】
その際、ポータル画面生成処理部１０６は、各ポートレットが返却するコンテンツの安全性を検証する為に、安全性検証処理部１０７に問合せを行う。安全性検証処理部１０７は、ポートレットのコンテンツに含まれるスクリプト言語等の安全性を検証して、その結果をポータル画面生成処理部１０６に応答し、ポータル画面生成処理部１０６は、安全性検証処理部１０７からの安全性検証結果に従った画面を表示するＨＴＭＬを自動的に生成してＷｅｂブラウザ側処理装置１０１に応答する。
【００２０】
図２は本実施形態のＷｅｂポータル処理装置１００のハードウェア構成を示す図である。図２に示す様にＷｅｂポータル処理装置１００は、ポータル画面生成処理部１０６及び安全性検証処理部１０７をメモリ内に有し、ローカルポートレットやリモートポートレットを格納する磁気ディスク装置を備えている。
【００２１】
図３は本実施形態のポータル画面生成処理部１０６で生成する画面の例を示す図である。図３に示す様に従来のＷｅｂ表示装置における画面表示例２００では、コンテンツの内容の改竄や漏洩が可能である命令を含まない安全なポートレットと、コンテンツの内容の改竄や漏洩が可能である命令を含む危険なポートレット（他のポートレットの内容の変更や取得及び送信が可能な命令を含むポートレット）とを一つの画面に合成していた。
【００２２】
図４は従来のポータル画面のＨＴＭＬの例を示す図である。図４において、ＨＴＭＬデータ２１０はＷｅｂブラウザ側処理装置１０１に応答するＨＴＭＬのデータ全体を表しており、ローカルポートレット２１１は、安全なポートレットのＨＴＭＬのデータを表している。
【００２３】
本例ではＡタグ２１２で、社内の業務に関する情報を格納したＵＲＬであるｈｔｔｐ：／／ｘｘｘへのハイパーリンクを表示している。リモートポートレット２１３は、危険なポートレットの例であり、スクリプト命令２１４のＪａｖａＳｃｒｉｐｔ（ＪａｖａＳｃｒｉｐｔは、米国及びその他の国における米国Ｓｕｎ  Ｍｉｃｒｏｓｙｓｔｅｍｓ、  Ｉｎｃ．の商標または登録商標）内のｇｅｔＥｌｅｍｅｎｔｓＢｙＴａｇＮａｍｅ命令でＨＴＭＬ内のＡタグにアクセスしている。更に、スクリプト命令２１５のｓｅｔＡｔｔｒｉｂｕｔｅ命令でローカルポートレット２１１内のＡタグ２１２のハイパーリンクをｈｔｔｐ：／／ｙｙｙに変更している。この様にＪａｖａＳｃｒｉｐｔ等のスクリプト言語を使用することで、一つのＨＴＭＬデータ内であれば他のポートレットの情報にアクセスして、内容を改竄することが容易となるという問題があった。
【００２４】
図３の本実施形態におけるＷｅｂポータル処理装置１００の画面表示例２０１及び２０２では、最初に安全性検証処理部１０７により安全と判定されたポートレットのコンテンツだけを合成して一つのＨＴＭＬ画面に表示する（画面表示例２０１）。危険と判定されたポートレットのコンテンツは、他のポートレットの情報を改竄や漏洩を行わせない様に、別のＨＴＭＬに隔離して用意しておき、安全なポートレットのコンテンツの表示が終わった後に別のウィンドウで表示する様にしておく（画面表示例２０２）。また、安全なコンテンツと危険なコンテンツの画面を分けて表示するか否かは、警告メッセージを表示し、利用者が選択する様にしても良い。
【００２５】
図５は本実施形態のポータル画面生成処理部１０６の処理手順を示すフローチャートである。図５に示す様にＷｅｂポータル処理装置１００のポータル画面生成処理部１０６は、コンテンツの表示の際に合成されるポートレットを磁気ディスク装置から読み出し、その読み出したポートレットが安全であると判定された場合に、当該ポートレットをコンテンツ表示用データとしてメモリ上に格納し、安全であると判定された他のポートレットとメモリ上で合成する処理を行う。また安全性検証処理部１０７は、ポータル画面生成処理部１０６の読み出したポートレット中に記述されている命令をメモリ上で抽出してその安全性を検証する処理を行う。
【００２６】
Ｗｅｂポータル処理装置１００は、Ｗｅｂブラウザ側処理装置１０１からポータル画面を表示する為のＷｅｂ表示要求であるポータル画面取得要求を通信装置により受け付けると、ステップ３００でポータル画面生成処理部１０６は、Ｗｅｂブラウザ側処理装置１０１が要求したポートレットの数を計数してそのポートレットの数だけ繰り返し処理を行う為の制御変数を設定し、ステップ３０１〜ステップ３０４までの処理を繰り返す。
【００２７】
ステップ３０１でポータル画面生成処理部１０６は、Ｗｅｂブラウザ側処理装置１０１が要求したポートレットを磁気ディスク装置から読み出す。この際、ポータル画面生成処理部１０６が読み出すデータは、図４のローカルポートレット２１１やリモートポートレット２１３といったポートレットのＨＴＭＬデータである。
【００２８】
次にポータル画面生成処理部１０６は、その読み出したポートレットのデータを安全性検証処理部１０７に渡して安全性を問い合わせる。安全性検証処理部１０７は、ポータル画面生成処理部１０６から受け取ったポートレット中に記述されている命令をメモリ上で抽出してその安全性を検証する処理を行い、検証結果をポータル画面生成処理部１０６へ返す。そしてポータル画面生成処理部１０６は、安全性検証処理部１０７から返された検証結果を参照し、前記読み出したポートレットが安全性検証処理部１０７により安全であると判定された場合にはステップ３０２へ進む。
【００２９】
ステップ３０２では、安全性検証処理部１０７により安全であると判定されたポートレットをコンテンツ表示用ＨＴＭＬデータとしてメモリ上に格納し、安全であると判定された他のポートレットを、ＨＴＭＬのＴＡＢＬＥタグ等を利用してメモリ上で追加して合成する処理を行う。
【００３０】
一方、ステップ３０１で安全性検証処理部１０７から返された検証結果を参照した結果、前記読み出したポートレットが安全性検証処理部１０７により安全であると判定されなかった場合にはステップ３０３へ進む。
【００３１】
ステップ３０３では、安全性検証処理部１０７により安全であると判定されなかったポートレットを前記コンテンツ表示用ＨＴＭＬデータとは異なる単体表示用ＨＴＭＬデータとしてメモリ上に格納し、当該ポートレットを単体で表示する為のＨＴＭＬデータを生成する。またポートレットのコンテンツは、合成されることを前提にしており、ＨＴＭＬタグやＢＯＤＹタグが付けられていない為、前記ポートレットにこれらのタグを付加して単体表示用ＨＴＭＬデータを生成する。
【００３２】
図６は本実施形態の単体表示用のＨＴＭＬデータの例を示す図である。図６においてＨＴＭＬデータ６００は、安全性検証処理部１０７により安全であると判定されなかったポートレットを表示する為のＨＴＭＬ記述例を表しており、この場合、タグ付加部６０１及び６０２の部分に、ＨＴＭＬタグとＢＯＤＹタグだけを付加して単独表示可能な一つのＨＴＭＬデータを生成している。
【００３３】
ここで、安全であると判定されなかったコンテンツが含まれていることを示す警告メッセージを出力する為のデータを生成してＨＴＭＬデータ６００に追加し、ＨＴＭＬデータ６００の表示の際に警告メッセージを出力装置に出力する様にしても良い。
【００３４】
ステップ３０４では、ステップ３００に対応する繰り返しの終わりである。これらの繰り返しが終了した後、コンテンツ表示用に合成されたポートレットにＨＴＭＬタグやＢＯＤＹタグを付加してコンテンツ表示用ＨＴＭＬデータを生成する。以上のステップ３００からステップ３０４までの処理により、安全であると判定されたポートレットだけを集めたポータル画面のコンテンツ表示用ＨＴＭＬデータと、安全であると判定されなかったポートレットを単体で表示する為の単体表示用ＨＴＭＬデータが生成される。
【００３５】
次にステップ３０５では、安全なコンテンツ表示用ＨＴＭＬデータにＪａｖａＳｃｒｉｐｔのｏｎＵｎｌｏａｄイベントハンドラ等で起動するスクリプトを追加し、そのスクリプト中に前記単体表示用データを別ウィンドウで表示する処理を記述する。このスクリプトにより、Ｗｅｂブラウザ側処理装置１０１において、最初は安全なコンテンツのポータル画面を表示し、安全なコンテンツの画面を閉じた後に単独表示用ＨＴＭＬデータを表示させることが可能となる。
【００３６】
図７は本実施形態の安全なポートレットを合成したポータル画面のＨＴＭＬの例を示す図である。図７のＨＴＭＬデータ５００は、Ｗｅｂブラウザ側処理装置１０１に応答する安全なポートレットを合成したコンテンツ表示用ＨＴＭＬデータであり、ポートレット結合部分５０１の部分に各ポートレットのコンテンツをＴＡＢＬＥタグで結合している。
【００３７】
単独表示用スクリプト５０２は、この画面を終了するか別のページに遷移したときに、単独表示用ＨＴＭＬデータを呼び出す為のコードである。
【００３８】
ポータル画面生成処理部１０６は、単独表示用ＨＴＭＬデータの新規ウィンドウを生成するスクリプトをｗｉｎｄｏｗ関数により単独表示用スクリプト５０２のＳＣＲＩＰＴタグ内に定義し、ＢＯＤＹタグのｏｎＵｎｌｏａｄイベントハンドラを使って、安全であると判定されたポートレットのページを閉じたときに前記スクリプトをＷｅｂブラウザ側処理装置１０１に実行させることで、安全であると判定されなかったポートレットを別ウィンドウで表示する処理をＷｅｂブラウザ側処理装置１０１で実現する。
【００３９】
コンテンツ表示用ＨＴＭＬデータであるＨＴＭＬデータ５００と、単独表示用ＨＴＭＬデータであるＨＴＭＬデータ６００は、図７及び図６に示す様に、それぞれ異なるＨＴＭＬタグで囲まれた独立したデータであり、異なるウィンドウによって表示されるので、ＨＴＭＬデータ５００は、表示の際にＨＴＭＬデータ６００中の命令の影響を受けることが無い。
【００４０】
ステップ３０６では、前記の様にして生成したコンテンツ表示用ＨＴＭＬデータを通信装置によりＷｅｂブラウザ側処理装置１０１に送信し、安全であると判定されたポートレットだけを集めたポータル画面と安全であると判定されなかったポートレットとを別ウィンドウで表示するＨＴＭＬデータ５００をＷｅｂブラウザ側処理装置１０１に対して応答する。
【００４１】
図８は本実施形態の安全性検証処理部１０７の構成を示す図である。図８に示す様に安全性検証処理部４００は、スクリプト言語解析部４０１及び危険命令リスト４０２を有している。
【００４２】
スクリプト言語解析部４０１は、ポータル画面生成処理部１０６により読み出されたポートレット中に記述されている命令をメモリ上で抽出して危険命令リスト４０２中の命令と比較することにより、当該ポートレットの安全性を検証する処理部である。
【００４３】
危険命令リスト４０２には、ＨＴＭＬコンテンツの参照や更新を行う命令である、ＤＯＭインタフェースを利用したスクリプト言語の命令を定義しておく。例えば、ｇｅｔＥｌｅｍｅｎｔｓＢｙＴａｇＮａｍｅ命令等は、ＨＴＭＬ内の任意のタグの値を取得できるので、外部との通信を行う命令と組み合わせることにより機密情報の漏洩の危険性があり、ａｐｐｅｎｄＣｈｉｌｄ命令等は、任意のタグの値を変更できるので情報改竄の危険性がある。また命令ではなくＤＯＭインタフェースで利用するｄｏｃｕｍｅｎｔやｅｌｅｍｅｎｔといったクラスを定義しておいても良い。
【００４４】
前記の様な観点で、危険命令リスト４０２中には、情報改竄や情報漏洩の危険性がある命令やクラスを定義しておくものとするが、スクリプト言語は拡張されるため、コンテンツの内容の改竄や漏洩が可能である命令の入力を入力装置によりシステム管理者から受け付け、その受け付けた命令をメモリ中の危険命令リスト４０２に登録するものとしても良い。
【００４５】
安全性検証処理部１０７のスクリプト言語解析部４０１は、ステップ３０１でポータル画面生成処理部１０６からポートレットの安全性について問い合わせを受けると、ポータル画面生成処理部１０６から受け取ったポートレットをメモリ上で解析してその中に記述されている命令を抽出した後、その抽出した命令と危険命令リスト４０２中の命令とを比較して、前記抽出した命令が危険命令リスト４０２中の命令と一致するかどうかを調べる。そして、前記抽出した命令の中に、危険命令リスト４０２中の命令と一致するものが一つも存在しない場合には、当該ポートレットは安全であると判定し、一つでも存在する場合には安全ではない判定してその判定結果をポータル画面生成処理部１０６へ返す。
【００４６】
例えば図４に示したリモートポートレット２１３の安全性を検証する場合、スクリプト言語解析部４０１は、リモートポートレット２１３をメモリ上で解析してその中に記述されているｇｅｔＥｌｅｍｅｎｔｓＢｙＴａｇＮａｍｅ命令を抽出して危険命令リスト４０２中の命令とを比較し、ｇｅｔＥｌｅｍｅｎｔｓＢｙＴａｇＮａｍｅ命令が危険命令リスト４０２中の命令と一致することを検出して、リモートポートレット２１３が安全ではないという判定結果をポータル画面生成処理部１０６へ返す。
【００４７】
また、前記の処理で安全性検証処理部１０７は、危険命令リスト４０２との比較によりポートレットの安全性を検証したが、ポートレット中の命令処理をシミュレーションして、情報改竄や情報漏洩の可能性があるかどうか検証するものとしても良い。
【００４８】
すなわち、Ｗｅｂブラウザ側処理装置１０１が要求した複数のポートレットをメモリ上で合成してコンテンツテスト用ＨＴＭＬデータを生成し、前記コンテンツテスト用データ中の各ポートレット内の命令をスクリプト言語解析部４０１により擬似的に実行して、コンテンツの内容の改竄や漏洩、つまり他のポートレットの内容の変更やその内容の外部への送信が行われるかどうかを調べ、内容の変更や外部への送信が行われない場合には、そのポートレットを安全であると判定する。
【００４９】
例えば図４に示したリモートポートレット２１３の安全性をシミュレーションにより検証する場合、スクリプト言語解析部４０１は、ローカルポートレット２１１及びリモートポートレット２１３をメモリ上で合成してコンテンツテスト用ＨＴＭＬデータとしてＨＴＭＬデータ２１０を生成し、コンテンツテスト用ＨＴＭＬデータ中の各ポートレット内の命令、すなわちリモートポートレット２１３中のｇｅｔＥｌｅｍｅｎｔｓＢｙＴａｇＮａｍｅ命令やｓｅｔＡｔｔｒｉｂｕｔｅ命令をスクリプト言語解析部４０１により擬似的に実行して、コンテンツテスト用ＨＴＭＬデータ中のローカルポートレット２１１の実行前後での変化や、外部リンクの参照時にパラメータとして値を外部へ渡す等の外部への通信の有無を調べる。
【００５０】
図４の例では、リモートポートレット２１３中のｇｅｔＥｌｅｍｅｎｔｓＢｙＴａｇＮａｍｅ命令やｓｅｔＡｔｔｒｉｂｕｔｅ命令の実行により、ローカルポートレット２１１内のＡタグ２１２のハイパーリンクがｈｔｔｐ：／／ｙｙｙに変更されるので、コンテンツテスト用ＨＴＭＬデータ中でのこの変更を検出することにより、リモートポートレット２１３が安全ではないと判定することができる。
【００５１】
以上説明した様に本実施形態のＷｅｂ表示装置によれば、複数のポートレットを合成してコンテンツを生成する場合に、記述されている命令の安全性を検証したポートレットを合成してコンテンツを生成するので、複数のポートレットを合成してコンテンツを表示する際に、情報の改竄や漏洩の可能性のある命令を含むポートレットの合成を防止して安全にコンテンツの表示を行うことが可能である。
（実施形態２）
以下に複数のポートレットを合成してコンテンツを生成する場合に、セキュリティ属性とアクセスコントロールリストにより合成可否を判定する実施形態２のＷｅｂ表示装置について説明する。
【００５２】
図９は本実施形態のＷｅｂポータル処理装置１００の全体構成を示す図である。図９に示す様に本実施形態のＷｅｂポータル処理装置１００はポータル画面レイアウト定義部９００を有している。ポータル画面レイアウト定義部９００は、ポータルサーバの管理者若しくはポータル利用者によるポートレットの選択を受け付けてポータル画面のレイアウト定義を生成する処理部である。
【００５３】
また本実施形態の安全性検証処理部１０７は、ポータル画面レイアウト定義部９００でのポータル画面レイアウト定義においてポートレット追加の操作を受け付けた場合に、当該ポートレットのセキュリティ属性とアクセスコントロールリストをポートレット属性テーブル９０１及びアクセスコントロールリストテーブル９０２からそれぞれ読み出し、それらのセキュリティ属性とアクセスコントロールリストにより、ポートレットを合成しても安全であると判定された場合にのみそのポートレットの追加を許可する処理を行う。
【００５４】
Ｗｅｂポータル処理装置１００をポータル画面レイアウト定義部９００や前記の処理を行う安全性検証処理部１０７として機能させる為のプログラムは、ＣＤ−ＲＯＭ等の記録媒体に記録され磁気ディスク等に格納された後、メモリにロードされて実行されるものとする。なお前記プログラムを記録する記録媒体はＣＤ−ＲＯＭ以外の他の記録媒体でも良い。また前記プログラムを当該記録媒体から情報処理装置にインストールして使用しても良いし、ネットワークを通じて当該記録媒体にアクセスして前記プログラムを使用するものとしても良い。
【００５５】
またＷｅｂポータル処理装置１００は、ポートレット属性テーブル９０１と、アクセスコントロールリストテーブル９０２とを有している。
【００５６】
ポートレット属性テーブル９０１は、のセキュリティに関する情報を格納するテーブルである。アクセスコントロールリストテーブル９０２は、前記セキュリティ属性を用いてポートレットの合成可否を記述したアクセスコントロールリストを格納するテーブルである。なおＷｅｂポータル処理装置１００のその他のハードウェア構成については実施形態１と同様であるものとする。
【００５７】
図１０は本実施形態のポートレット属性テーブル９０１の詳細を示す図である。ポートレット属性テーブル９０１は、ポートレットのセキュリティに関する情報を格納するテーブルである。
【００５８】
種別１００１はポートレットがＷｅｂポータル処理装置１００にローカルにインストールされて実行されるのか、またはリモートのサーバで実行されるのかを示す。リモートのサーバで実行されるポートレットは、基本的にはＷｅｂポータル処理装置１００の管理者の管理範囲外であるので、そのポートレットが安全か危険かは単純に判断できないと言える。本実施形態では、種別１００１をローカルまたはリモートの２種類としたが、イントラネット内のリモートサーバ、イントラネット外のリモートサーバ等、更に細かく定義することも可能である。
【００５９】
重要度１００２はポートレットのコンテンツの重要度を示す属性である。ポートレットによって取り扱う情報の機密度は様々である。本属性ではポートレットの取り扱う情報の機密度すなわち重要度を指定する。本実施形態では機密度の高い情報を扱うポートレットに対して「重要」の属性、機密度が特に高くない情報を扱うポートレットには「一般」の属性を指定している。本実施形態では「重要」と「一般」の２種類の重要度を定義しているが、「他ポートレットからコンテンツの参照のみ許可」等更に細かく重要度を定義することも可能である。また、重要度が未定義の場合には「一般」を割り当てる等、管理を容易にすることも可能である。
【００６０】
悪意度１００３はポートレットの悪意の度合いを示す属性である。上記実施形態で説明した通りＨＴＭＬ内コンテンツを参照や変更するＪａｖａＳｃｒｉｐｔ等のプログラム言語をポートレットのコンテンツ中に含ませることにより他のポートレットのコンテンツを盗聴したり、改竄したりすることが技術的には可能である。本属性では、ポートレットがこの様な他ポートレットの参照や編集を行うかどうか、すなわち悪意を持っているか否かを定義する。
【００６１】
本実施形態では、そのポートレットが他ポートレットの参照や編集を行わず、安全である場合には「安全」、安全性を検証しておらず悪意度が不明の場合には「未検証」という属性を指定している。本実施形態では「安全」と「未検証」の２種類の悪意度を定義しているが、「他ポートレットを参照」、「他ポートレットを編集」等、更に細かく悪意度を定義することも可能である。また、重要度の定義方法と同様に、悪意度が未定義の場合には「未検証」を割り当てる等、管理を容易にすることも可能であり、更に、ポートレット中の参照や編集を行う命令を検索して表示することにより前記悪意度の定義を支援する様にしても良い。
【００６２】
図１１は本実施形態のアクセスコントロールリストテーブル９０２の詳細を示す図である。アクセスコントロールリストテーブル９０２は、ポートレットの合成可否を決定する為の定義を格納するテーブルである。
【００６３】
本実施形態では、ポートレットの重要度１１００毎にアクセス制御式１１０１を定義するものとし、アクセス制御式１１０１は自身より重要度の低いアクセス制御式で許可されるポートレットの集合の部分集合となる様に定義されるものとする。図１１の様に、本実施形態では重要度が「重要」のポートレットは、悪意度が「安全」のポートレットのみ合成可能、重要度が「一般」のポートレットは何れのポートレットとも合成可能という定義を行っている。
【００６４】
また重要度及び悪意度の値はそれぞれ順位付けられているものとし、本実施形態の場合、重要度については、「重要」、「一般」の順に重要度が高く、また、悪意度については、「未検証」、「安全」の順に悪意度が高いものとする。
【００６５】
図１２は本実施形態の合成時の処理の処理手順を示すフローチャートである。本処理はポータル画面レイアウトにポートレットを追加する際に呼び出される。図１３に示す追加例を元に図１２の処理手順を説明する。
【００６６】
図１３は本実施形態のポートレットの追加例を示す図である。図１３では、「経営情報」、「資材発注」、「通達」の３つのポートレットからなるポータル画面レイアウト１３００に対し、［ケースＡ］「食堂メニュー」ポートレットを追加する場合（追加例１３０１）と、［ケースＢ］「天気」ポートレットを追加する場合（追加例１３０２）を示しており、図１０のポートレット属性テーブル９０１、図１１のアクセスコントロールリストテーブル９０２の設定を用いると、以下の様な処理となる。
【００６７】
まず処理方法について説明する。始めに、追加対象となる現在のポータル画面レイアウト１３００に含まれるポートレットについて、ポートレット属性テーブル９０１を参照して最も高い重要度を取得する（ステップ１２００）。本実施形態の場合、ポータル画面レイアウト１３００中には「経営情報」、「資材発注」、「通達」ポートレットが含まれているので、最も高い重要度は「重要」となる。
【００６８】
次いで、アクセスコントロールリストテーブル９０２を参照してステップ１２００で取得した重要度に対応するアクセス制御式１１０１を取得する（ステップ１２０１）。すなわち「重要」に対応するアクセス制御式「悪意度＝安全」を取得する。
【００６９】
次いで、ステップ１２０１で取得したアクセス制御式１１０１で追加対象のポートレットの合成可否について検証を行う。合成可否の検証結果が合成許可であった場合には、ポータル画面レイアウト１３００にポートレットを追加し（ステップ１２０３）、不許可だった場合には“合成不許可”のメッセージを出力する。
【００７０】
本実施形態において、［ケースＡ］「食堂メニュー」ポートレットを追加する場合には（追加例１３０１）、「食堂メニュー」ポートレットの悪意度が「安全」であり、アクセス制御式「悪意度＝安全」を満たすので合成を許可し（ステップ１２０３）、［ケースＢ］「天気」ポートレットを追加する場合には（追加例１３０２）、「天気」ポートレットの悪意度が「未検証」でアクセス制御式「悪意度＝安全」を満たさないため合成を不許可とする（ステップ１２０４）。
【００７１】
図１４は本実施形態のポートレットの隔離表示例を示す図である。上記実施形態では、合成不許可となった場合、エラーメッセージを出力すると共にポートレットの合成を禁止しているが、図１４に示す様にＦＱＤＮ(Fully Qualified Domain Name)を用い、他のポートレットのＨＴＭＬを参照できない様に隔離して表示することも可能である。
【００７２】
その場合、まず隔離の為に、通常のポータル画面表示用のＦＱＤＮ１４００とは別に、隔離用の副ＦＱＤＮであるＦＱＤＮ１４０１もＷｅｂポータル処理装置１００に設定する。これはＤＮＳ(Domain Name System)サーバにエントリを追加することで実現できる。なお、クッキーでポータルサーバのセッション維持を行っている場合には隔離するＦＱＤＮを通常表示用のＦＱＤＮと共通サブドメインとなる様にし、また、セッション維持用のクッキーにはｄｏｍａｉｎオプションを利用して通常用及び隔離用で共用できる様にする。
【００７３】
図１４の例では、不許可ポートレット表示例１４０４の様にクリック操作１４０３の際に別ＦＱＤＮかつ別ウインドウで不許可ポートレットを表示する様にし、そのリンクを埋め込んだ仮ポートレットをポータル画面として合成している（合成表示例１４０２）。上記例では仮ポートレットにリンクを埋め込んで別ウインドウに表示しているが、他にＨＴＭＬのｉｆｒａｍｅ要素を使用してインライン表示して隔離することも可能である。なお、「未検証」、「他ポートレットを参照」、「他ポートレットを編集」等の悪意度以外に、「ウインドウを生成」等の参照・編集以外の処理内容に関する悪意度も定義しておき、ウインドウを無限に生成してリソースを浪費させる可能性のあるポートレットについては、隔離して表示することも不許可とする様にしても良い。
【００７４】
上記実施形態では、ポータル画面レイアウトにポートレットを追加する際に拒否または、追加後隔離して表示する例について説明した。一方、ポータル画面レイアウトへの追加候補一覧を作成する際に、安全性検証処理部１０７によって安全性を検証して安全でないと判定された場合には当該ポートレットを追加候補一覧として表示しないといった方法も可能である。
【００７５】
この安全性検証処理は図１２の処理と同様の方法で実現可能であり、例えば図１３に示すポータル画面レイアウト定義部９００の処理において表示される追加候補のポートレットの集合について、安全性検証処理部１０７によってアクセスコントロールリスト及び「食堂メニュー」及び「天気」のポートレットのセキュリティ属性とを読み出し、合成しても安全であると判定された場合にのみ、それらのポートレットを追加候補として表示する様にする。
【００７６】
上記実施形態では、管理者がアクセスコントロールリストテーブル９０２を定義しているが、前記アクセスコントロールリストを管理者によりポータル利用者の設定まで含めて一括して設定する為のインターフェイスを備え、管理者により一括して設定したアクセスコントロールリストについて、ポータル利用者による設定の上書きを受け付けて再定義を行うことにより、管理者が許可した範囲で一般利用者がアクセスコントロールを行うことも可能である。
【００７７】
図１５は本実施形態のアクセスコントロールリストの上書きを実現する為のテーブル構成を示す図である。アクセスコントロールリストを管理者によりポータル利用者の設定まで含めて一括して設定する為のインタフェースとして、図１５の様な管理者のみが設定可能なデフォルトのアクセスコントロールリストテーブルを設けておき、Ｗｅｂポータル処理装置１００は、管理者からの設定内容を受け付けて、このデフォルトのアクセスコントロールリストの更新を行う。
【００７８】
また図１５に示す様に、このアクセスコントロールリストテーブルには、一般利用者が設定可能か否かを示すカラムを設ける。管理者が一般利用者の設定上書き変更を許可する場合、設定変更欄１５００で「許可」を指定するものとし、一般利用者は変更が許可された重要度に対するアクセス制御について変更することができるものとする。
【００７９】
Ｗｅｂポータル処理装置１００は、一般利用者からのアクセスコントロールリストの設定の上書き指示を受け付けると、前記デフォルトのアクセスコントロールリストテーブルを参照して、その上書き指示の行われた項目の設定変更欄１５００を調べ、変更が許可されている場合には、当該利用者専用のアクセスコントロールリストテーブルに、前記受け付けた設定内容を格納してその利用者専用のアクセスコントロールリストの設定を行う。
【００８０】
そして安全性検証処理部１０７は、判定対象のポートレットについて、まず利用者専用のアクセスコントロールリストの読み出しを行い、利用者専用のアクセスコントロールリストが存在していない場合にデフォルトのアクセスコントロールリストの読み出しを行って、合成可否を判定する。
【００８１】
これにより管理者は、コンテンツのアクセス制御について、重要なコンテンツのみ厳しく設定し、それ以外のコンテンツについては利用者にアクセス制御の設定を委譲することができ、セキュリティを維持しつつ容易にきめ細かなアクセス制御を実現することが可能である。
【００８２】
前記の様に本実施形態ではＷｅｂポータル処理装置１００について説明したが、本発明は複数のコンテンツを合成して一つの画面を生成する場合に有効であり、例えばバナー広告のコンテンツを合成して画面表示を行う一般的なＷｅｂシステムにも適用することができる。
【００８３】
以上説明した様に本実施形態のＷｅｂ表示装置によれば、複数のポートレットを合成してコンテンツを生成する場合に、セキュリティ属性とアクセスコントロールリストにより合成可否を判定するので、複数のポートレットを合成してコンテンツを表示する際に、合成されるポートレット間のセキュリティ属性に応じてアクセス制御を行って安全にコンテンツの表示を行うことが可能である。
【図面の簡単な説明】
【００８４】
【図１】実施形態１のＷｅｂ表示システムの全体構成を示す図である。
【図２】実施形態１のＷｅｂポータル処理装置１００のハードウェア構成を示す図である。
【図３】実施形態１のポータル画面生成処理部１０６で生成する画面の例を示す図である。
【図４】従来のポータル画面のＨＴＭＬの例を示す図である。
【図５】実施形態１のポータル画面生成処理部１０６の処理手順を示すフローチャートである。
【図６】実施形態１の単体表示用のＨＴＭＬデータの例を示す図である。
【図７】実施形態１の安全なポートレットを合成したポータル画面のＨＴＭＬの例を示す図である。
【図８】実施形態１の安全性検証処理部１０７の構成を示す図である。
【図９】実施形態２のＷｅｂポータル処理装置１００の全体構成を示す図である。
【図１０】実施形態２のポートレット属性テーブル９０１の詳細を示す図である。
【図１１】実施形態２のアクセスコントロールリストテーブル９０２の詳細を示す図である。
【図１２】実施形態２の合成時の処理の処理手順を示すフローチャートである。
【図１３】実施形態２のポートレットの追加例を示す図である。
【図１４】実施形態２のポートレットの隔離表示例を示す図である。
【図１５】実施形態２のアクセスコントロールリストの上書きを実現する為のテーブル構成を示す図である。
【符号の説明】
【００８５】
１００…Ｗｅｂポータル処理装置、１０１…Ｗｅｂブラウザ側処理装置、１０２…メールシステム、１０３…データベース、１０４…インターネット、１０５…リモートポートレット提供サーバ、１０６…ポータル画面生成処理部、１０７…安全性検証処理部、２００…画面表示例、２０１及び２０２…画面表示例、２１０…ＨＴＭＬデータ、２１１…ローカルポートレット、２１２…Ａタグ、２１３…リモートポートレット、２１４…スクリプト命令、２１５…スクリプト命令、６００…ＨＴＭＬデータ、６０１及び６０２…タグ付加部、５００…ＨＴＭＬデータ、５０１…ポートレット結合部分、５０２…単独表示用スクリプト、４００…安全性検証処理部、４０１…スクリプト言語解析部、４０２…危険命令リスト、９００…ポータル画面レイアウト定義部、９０１…ポートレット属性テーブル、９０２…アクセスコントロールリストテーブル、１０００…ポートレット、１００１…種別、１００２…重要度、１００３…悪意度、１１００…重要度、１１０１…アクセス制御式、１３００…ポータル画面レイアウト、１３０１及び１３０２…追加例、１４００…ＦＱＤＮ、１４０１…ＦＱＤＮ、１４０２…合成表示例、１４０３…クリック操作、１４０４…不許可ポートレット表示例、１５００…設定変更欄
【図１】
2005267605.tif 000003
【図２】
2005267605.tif 000004
【図３】
2005267605.tif 000005
【図４】
2005267605.tif 000006
【図５】
2005267605.tif 000007
【図６】
2005267605.tif 000008
【図７】
2005267605.tif 000009
【図８】
2005267605.tif 000010
【図９】
2005267605.tif 000011
【図１０】
2005267605.tif 000012
【図１１】
2005267605.tif 000013
【図１２】
2005267605.tif 000014
【図１３】
2005267605.tif 000015
【図１４】
2005267605.tif 000016
【図１５】
2005267605.tif 000017