(57)【要約】【課題】複数の取得元からのデータとスクリプトを混在させたうえで、セキュリティを維持してスクリプトを正確に実行することが可能なスクリプト付き文書処理装置を提供すること。【解決手段】文書データを構成する要素間の関係を示す全体文書構造データを生成する全体文書構造解析部４３１と、全体文書構造データに基づき要素間の関係をスクリプトを有する要素の取得元ごとに分類した取得元別文書構造データを生成する取得元別文書構造解析部４３３と、取得元ごとにスクリプト実行位置を抽出してスクリプト実行位置データを生成するスクリプト抽出部４３４と、スクリプト実行位置から特定される前記スクリプト実行位置データに基づいてスクリプトを実行するスクリプト実行部４６と、スクリプト実行部４６がスクリプトと同じ取得元の取得元別文書構造データに対してのみアクセス可能とするアクセス制限部４３５と、を備える。【選択図】        図２
2005182342.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク上の複数のサーバ装置から予め定められた条件を満たす情報が取得され、取得された個々の情報に対してその取得元を識別する情報が付加された文書データ中に含まれるスクリプトを実行するスクリプト付き文書処理装置であって、
前記文書データを構成する要素の構造を解析し、前記要素間の関係を示す全体文書構造データを生成する全体文書構造解析手段と、
前記全体文書構造データに基づいて、前記要素間の関係を前記文書データのうちスクリプトを有する要素の取得元ごとに分類した取得元別文書構造データを生成する取得元別文書構造解析手段と、
前記取得元ごとに、前記文書データに含まれるスクリプトが実行される起点であるスクリプト実行位置を抽出してスクリプト実行位置データを生成するスクリプト抽出手段と、
あるスクリプトが実行されるとき、そのスクリプトのスクリプト実行位置から特定される前記スクリプト実行位置データに基づいてスクリプトを実行するスクリプト実行手段と、
前記スクリプト実行手段によって実行中の前記スクリプトが前記文書データにアクセスする際に、前記スクリプトと同じ取得元の取得元別文書構造データに対してのみアクセス可能とするアクセス制限手段と、
を備えることを特徴とするスクリプト付き文書処理装置。
【請求項２】
前記取得元別文書構造解析手段は、前記取得元別文書構造データを構成する要素を前記全体文書構造データ中の要素に応付ける文書構造対応情報を生成し、
前記スクリプト実行手段によって実行中の前記スクリプトが前記文書データの内容の更新を行う際に、前記アクセス制限手段によるアクセス先を、前記文書構造対応情報に基づいて前記取得元別文書構造データ中の要素から前記全体文書構造データ中の要素へと変換して、前記文書データの内容の更新を行うアクセス変換手段をさらに備えることを特徴とする請求項１に記載のスクリプト付き文書処理装置。
【請求項３】
ネットワーク上の複数のサーバ装置から予め定められた条件を満たす情報が取得され、取得された個々の情報に対してその取得元を識別する情報が付加された文書データ中に含まれるスクリプトを実行するスクリプト付き文書処理装置であって、
読み込んだ前記文書データを構成する要素の構造を解析し、前記要素間の関係を示す全体文書構造データを生成する全体文書構造解析手段と、
スクリプトを実行するスクリプト実行手段と、
前記文書データを読み込むと、該文書データ内のスクリプト中の変数と関数を、前記文書データ内で一意的に識別することができる名称に変換する第１の処理と、前記全体文書構造データの生成時に、前記要素間の関係を前記文書データのうちスクリプトを有する要素の取得元ごとに分類した取得元別文書構造データを生成するスクリプトを前記文書データに付加する第２の処理と、前記スクリプト実行手段によって実行中のスクリプトと同じ取得元の取得元別文書構造データのみを前記スクリプト実行手段がアクセス可能とするスクリプトを前記文書データに付加する第３の処理と、を実行するスクリプト加工手段と、
を備えることを特徴とするスクリプト付き文書処理装置。
【請求項４】
前記スクリプト加工手段は、
前記第２の処理で生成されるスクリプトに、前記第２の処理で生成される取得元別文書構造データを構成する各要素に、前記全体文書構造データ中での対応する要素を示す参照情報を付加する処理をさらに追加し、
前記第３の処理で生成されるスクリプトに、前記スクリプト実行手段が前記文書データの内容を更新する際に、前記スクリプト実行手段による更新先を、前記参照情報に基づいて前記取得元別文書構造データ中の要素から前記全体文書構造データ中の要素へと変換して、前記文書データの内容を更新する処理をさらに追加することを特徴とする請求項３に記載のスクリプト付き文書処理装置。
【請求項５】
前記文書データに付加された取得元を識別する情報が、予め定められた基準に従って選択されたサーバ装置のアドレスが格納されたアクセス許可情報内のアドレスと一致するか否かを判定し、前記取得元へのアクセスの可否を判定するアクセス許可判定手段をさらに備えることを特徴とする請求項１〜４のいずれか１つに記載のスクリプト付き文書処理装置。
【請求項６】
ネットワーク上の複数のサーバ装置から予め定められた条件を満たす情報を取得し、取得した個々の情報に対してその取得元を識別する情報を付加した文書データを、端末装置の要求にしたがって提供する文書取得装置であって、
前記文書データ内のスクリプト中の変数と関数を、前記文書データ内で一意的に識別することができる名称に変換する第１の処理と、
前記端末装置による前記文書データを構成する要素間の関係を示す全体文書構造データの生成と同時に、前記要素間の関係を前記文書データのうちスクリプトを有する要素の取得元ごとに分類した取得元別文書構造データを生成するスクリプトを前記文書データに付加する第２の処理と、
前記端末装置によって実行中のスクリプトと同じ取得元の取得元別文書構造データのみを前記端末装置がアクセス可能とするスクリプトを前記文書データに付加する第３の処理と、
を実行するスクリプト加工手段を備えることを特徴とする文書取得装置。
【請求項７】
前記スクリプト加工手段は、
前記第２の処理で生成されるスクリプトに、前記第２の処理で生成される取得元別文書構造データを構成する各要素に、前記全体文書構造データ中での対応する要素を示す参照情報を付加する処理をさらに追加し、
前記第３の処理で生成されるスクリプトに、実行されるスクリプトによって前記端末装置が前記文書データの内容を更新する際に、この更新先を、前記参照情報に基づいて前記取得元別文書構造データ中の要素から前記全体文書構造データ中の要素へと変換して、前記文書データの内容を更新する処理をさらに追加することを特徴とする請求項６に記載の文書取得装置。
【請求項８】
ネットワーク上の複数のサーバ装置から予め定められた条件を満たす情報を取得し、取得した個々の情報に対してその取得元を識別する情報を付加して文書データを生成する文書データ生成手段を有する文書取得装置と、
前記文書取得装置から取得した前記文書データを構成する要素の構造を解析し、前記要素間の関係を示す全体文書構造データを生成する全体文書構造解析手段と、
前記文書データに基づいて、前記要素間の関係を前記文書データのうちスクリプトを有する要素の取得元ごとに分類して取得元別文書構造データを生成する取得元別文書構造解析手段と、
前記取得元ごとに、前記文書データに含まれるスクリプトが実行される起点であるスクリプト実行位置を抽出してスクリプト実行位置データを生成するスクリプト抽出手段と、
あるスクリプトが実行されるとき、そのスクリプトのスクリプト実行位置から特定される前記スクリプト実行位置データに基づいてスクリプトを実行するスクリプト実行手段と、
前記スクリプト実行手段によって実行中の前記スクリプトが前記文書データにアクセスする際に、前記スクリプトと同じ取得元の取得元別文書構造データに対してのみアクセス可能とするアクセス制限手段と、
を有するスクリプト付き文書処理装置と、
を備えることを特徴とするスクリプト付き文書処理システム。
【請求項９】
ネットワーク上の複数のサーバ装置から予め定められた条件を満たす情報を取得し、取得したサーバ装置を識別する識別情報を付加して文書データを加工する文書データ生成手段を有する文書取得装置と、
前記文書取得装置から取得した前記文書データを構成する要素の構造を解析し、前記要素間の関係を示す全体文書構造データを生成する全体文書構造解析手段と、
前記文書データ中のスクリプトを実行するスクリプト実行手段と、
前記文書データを読み込むと、該文書データ内のスクリプト中の変数と関数を、前記文書データ内で一意的に識別することができる名称に変換する処理と、前記全体文書構造データの生成時に、前記要素間の関係を前記文書データのうちスクリプトを有する要素の取得元ごと分類した取得元別文書構造データを生成するスクリプトを前記文書データに付加する処理と、前記スクリプト実行手段によって実行中のスクリプトが前記文書データにアクセスする際に、前記スクリプト実行手段が実行されるスクリプトと同じ取得元の取得元別文書構造データのみをアクセス可能とするスクリプトを前記文書データに付加する処理と、を実行するスクリプト加工手段と、
を有するスクリプト付き文書処理装置と、
を備えることを特徴とするスクリプト付き文書処理システム。
【請求項１０】
ネットワーク上の複数のサーバ装置から予め定められた条件を満たす情報を取得し、取得した個々の情報に対してその取得元を識別する情報を付加して文書データを生成する文書データ生成手段と、
前記文書データ内のスクリプト中の変数と関数を、前記文書データ内で一意的に識別することができる名称に変換する処理と、端末装置によって前記文書データを構成する要素間の関係を示す全体文書構造データの生成と同時に、前記要素間の関係を前記文書データのうちスクリプトを有する要素の取得元ごとに分類した取得元別文書構造データを生成するスクリプトを前記文書データに付加する処理と、前記端末装置が、実行されるスクリプトと同じ取得元の取得元別文書構造データのみをアクセス可能とするスクリプトを前記文書データに付加する処理と、を実行するスクリプト加工手段と、
を有する文書取得装置と、
前記文書取得装置から取得した前記文書データを構成する要素の構造を解析し、前記要素間の関係を示す全体文書構造データを生成する全体文書構造解析手段と、
前記文書データ中のスクリプトに基づいて前記スクリプトを実行するスクリプト実行手段と、
を有する端末装置と、
を備えることを特徴とするスクリプト付き文書処理システム。
【請求項１１】
ネットワーク上の複数のサーバ装置から取得した予め定められた条件を満たす情報にその取得元を識別する情報が付された文書データを文書取得装置から取得した端末装置が、前記文書データ中に含まれるスクリプトをスクリプト実行手段によって実行するスクリプト付き文書処理方法であって、
前記文書取得装置から取得した前記文書データを構成する要素の構造を解析し、前記要素間の関係を示す全体文書構造データを生成する工程と、
前記全体文書構造データに基づいて、前記要素間の関係を前記文書データのうちスクリプトを有する要素の取得元ごとに分類した取得元別文書構造データを生成する工程と、
前記取得元ごとに、前記文書データに含まれるスクリプトが実行される起点であるスクリプト実行位置を抽出してスクリプト実行位置データを生成する工程と、
あるスクリプトが実行されるとき、そのスクリプトのスクリプト実行位置から特定される前記スクリプト実行位置データに基づいてスクリプトを前記スクリプト実行手段に設定する工程と、
前記スクリプト実行手段によって実行中の前記スクリプトが前記文書データにアクセスする際に、前記スクリプトと同じ取得元の取得元別文書構造データに対してのみアクセス可能とする工程と、
を含むことを特徴とするスクリプト付き文書処理方法。
【請求項１２】
ネットワーク上の複数のサーバ装置から取得した予め定められた条件を満たす情報にその取得元を識別する情報が付された文書データを文書取得装置から取得した端末装置が、前記文書データ中に含まれるスクリプトをスクリプト実行手段によって実行するスクリプト付き文書処理方法であって、
前記文書取得装置または前記端末装置が、前記文書データ内のスクリプト中の変数と関数を、前記文書データ内で一意的に識別することができる名称に変換する処理と、前記端末装置による後の工程での全体文書構造データの生成時に、該全体文書構造データに基づいて、前記要素間の関係を前記文書データのうちスクリプトを有する要素の取得元ごとに分類した取得元別文書構造データを生成するスクリプトを前記文書データに付加する処理と、後の工程で前記スクリプト実行手段によって実行されるスクリプトと同じ取得元の取得元別文書構造データのみを前記スクリプト実行手段がアクセス可能とするスクリプトを前記文書データに付加する処理と、を実行する工程と、
前記端末装置が、前記文書データを構成する要素の構造を解析し、前記要素間の関係を示す全体文書構造データを生成する工程と、
前記端末装置のスクリプト実行手段が、前記文書データ中のスクリプトに基づいて前記スクリプトを実行する工程と、
を含むことを特徴とするスクリプト付き文書処理方法。
【請求項１３】
ネットワーク上の複数のサーバ装置から取得した予め定められた条件を満たす情報にその取得元を識別する情報が付された文書データを取得すると、前記文書データを構成する要素の構造を解析し、前記要素間の関係を示す全体文書構造データを生成する工程と、
前記全体文書構造データに基づいて、前記要素間の関係を前記文書データのうちスクリプトを有する要素の取得元ごとに分類した取得元別文書構造データを生成する工程と、
前記取得元ごとに、前記文書データに含まれるスクリプトが実行される起点であるスクリプト実行位置を抽出してスクリプト実行位置データを生成する工程と、
あるスクリプトが実行されるとき、そのスクリプトのスクリプト実行位置から特定される前記スクリプト実行位置データに基づいてスクリプトを実行するように設定する工程と、
前記スクリプト実行手段によって実行中の前記スクリプトが前記文書データにアクセスする際に、前記スクリプトと同じ取得元の取得元別文書構造データに対してのみアクセス可能とする工程と、
を含むスクリプト付き文書処理方法をコンピュータに実行させることを特徴とするプログラム。
【請求項１４】
ネットワーク上の複数のサーバ装置から取得した予め定められた条件を満たす情報にその取得元を識別する情報が付された文書データを取得すると、前記文書データ内のスクリプト中の変数と関数を、前記文書データ内で一意的に識別することができる名称に変換する処理と、後の工程での全体文書構造データの生成時に、該全体文書構造データに基づいて、前記要素間の関係を前記文書データのうちスクリプトを有する要素の取得元ごとに分類した取得元別文書構造データを生成するスクリプトを前記文書データに付加する処理と、後の工程でのスクリプトの実行中に、実行されるスクリプトと同じ取得元の取得元別文書構造データのみをアクセス可能とするスクリプトを前記文書データに付加する処理と、を実行する工程と、
読み込んだ前記文書データを構成する要素の構造を解析し、前記要素間の関係を示す全体文書構造データを生成する工程と、
前記文書データ中のスクリプトに基づいて前記スクリプトを実行する工程と、
を含むスクリプト付き文書処理方法をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のＷｅｂサイトから収集したスクリプト付き文書中のスクリプトを実行する際に、該スクリプトが正確に実行される環境を提供するとともに、セキュリティポリシーを保持することが可能なスクリプト付き文書処理装置、文書取得装置、スクリプト付き文書処理システム、スクリプト付き文書処理方法およびその方法をコンピュータに実行させるためのプログラムに関するものである。
【背景技術】
【０００２】
インターネット上でコンテンツをメタデータ付きＸＭＬ（eXtensible Markup Language）文書として公開して、その二次利用が促進される流れのなかで、上記ＸＭＬ文書を公開する各サイトの概要を集約表示するアグリゲータというアプリケーションが登場している（たとえば、非特許文献１参照）。多くのアグリゲータは集約したＸＭＬ文書を最終的にＨＴＭＬ（HyperText Markup Language）文書に形成して、ユーザの所有する端末上のＷｅｂブラウザでそれを表示する。このようなアグリゲータは個人用デスクトップアプリケーションとして構成されるほか、Ｗｅｂポータルサイトにおいてニュースヘッドライン表示コンポーネントとしても活用されている。また米国においては商用ニュースサイトにおいて最新コンテンツの要約をメタデータつきＸＭＬ文書として提供する動きが加速しており、今後の市場拡大が期待される。
【０００３】
また、近年では、インターネットなどの広域のネットワーク上にある複数の管理ドメインにわたるコンピュータ資源を結びつけ、ひとつの複合したコンピュータシステムとしてサービスを提供するグリッドコンピューティングが注目されている。このグリッドコンピューティングの標準アーキテクチャであるＯＧＳＡ（Open Grid Services Architecture）や標準規格であるＯＧＳＩ（Open Grid Services Infrastructure）では、通信においてはＷｅｂサービスが利用され、サービス間のデータのやりとりにはＸＭＬが利用される。長期的にはデータとプログラムもＸＭＬデータとして表現され再利用可能な形となると考えられる。このような環境で、データを複数のグリッドノードから抽出・集約し、最後に演算を行うような処理が有効になると考えられる。ここで、個別のグリッドノード内のデータを用いた演算であっても、データが多量である場合にはデータをプログラムと一緒に記憶しておき、プログラムの実行は抽出・集約の後とすることが計算時間を減らすために有効となる場合があると考えられる。
【０００４】
【非特許文献１】Morbus Iff, "Introduction", [online], amphetaDesk, [retrieved on 2003-11-20], Retreived from the Internet: <URL: http://www.disobey.com/amphetadesk/index.html>
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ＸＭＬ文書の集約を行うシステムにおいて、ＸＭＬ文書中にＪａｖａ（登録商標）ｓｃｒｉｐｔプログラムやＸＳＬＴ（eXtensible Stylesheet Language Transformations）の処理命令などのスクリプトが含まれている場合に、アグリゲータによる集約表示の段階までこれらのスクリプトが残っていると、Ｗｅｂブラウザなどでこれらのスクリプトがそのまま実行され、スクリプトに異なる取得元の要素を含んだ入力が渡されてしまう場合があるという問題点があった。具体的には、ＸＭＬ文書中の情報は各情報発行元からクライアントへのみ提供されるべきものであるが、スクリプトは入力に基づいてＵＲＬ（Uniform Resource Locator）を生成するなどしてネットワークアクセスを行うことができる。そのため、悪意のサイトからのスクリプトにおいては、たとえばスクリプト自身と異なる情報発行元のデータを盗んでしまうことが可能という問題点があった。また、悪意のないサイトからのスクリプトにおいては、スクリプトに想定外の入力が与えられることによって誤った結果が得られてしまうという問題点があった。
【０００６】
さらに、Ｗｅｂブラウザなどによるスクリプトの実行にあたっては、文書取得元を基準としてスクリプトで実行できる内容を制限するセキュリティポリシーが採られているが、アグリゲータが介在することによって、誤ったセキュリティポリシーが適用されてしまい、権限の昇格が起こり得るという問題点もあった。たとえば、アグリゲータがＷｅｂブラウザと同一のホストで動作している場合に、実行されるスクリプトは自ホストという信頼できる文書取得元が提供しているという誤った判断が行われ、スクリプトが実行されてしまう。
【０００７】
このような問題点を解決するためには、アグリゲータによるＸＭＬ文書の加工の際に全てのスクリプトを削除するのが正しいセキュリティ上の実践とされているが、その場合は有用なスクリプトまで削除するしかないことになる。
【０００８】
また、ＸＭＬデータを利用してプログラムやデータのやり取りを行うグリッドコンピューティングにおいて、個別のプログラムの内容に制約を課すことなく意図しない動作を起こさないようにすることを保証する方法は公知でない。
【０００９】
本発明は、上記に鑑みてなされたものであって、複数の取得元からのデータとスクリプトを混在させたうえで、セキュリティを維持しつつスクリプトを正確に実行することが可能なスクリプト付き文書処理装置、文書取得装置、スクリプト付き文書処理システム、スクリプト付き文書処理方法およびその方法をコンピュータに実行させるためのプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
上述した課題を解決し、目的を達成するために、本発明は、ネットワーク上の複数のサーバ装置から予め定められた条件を満たす情報が取得され、取得された個々の情報に対してその取得元を識別する情報が付加された文書データ中に含まれるスクリプトを実行するスクリプト付き文書処理装置であって、前記文書データを構成する要素の構造を解析し、前記要素間の関係を示す全体文書構造データを生成する全体文書構造解析手段と、前記全体文書構造データに基づいて、前記要素間の関係を前記文書データのうちスクリプトを有する要素の取得元ごとに分類した取得元別文書構造データを生成する取得元別文書構造解析手段と、前記取得元ごとに、前記文書データに含まれるスクリプトが実行される起点であるスクリプト実行位置を抽出してスクリプト実行位置データを生成するスクリプト抽出手段と、あるスクリプトが実行されるとき、そのスクリプトのスクリプト実行位置から特定される前記スクリプト実行位置データに基づいてスクリプトを実行するスクリプト実行手段と、前記スクリプト実行手段によって実行中の前記スクリプトが前記文書データにアクセスする際に、前記スクリプトと同じ取得元の取得元別文書構造データに対してのみアクセス可能とするアクセス制限手段と、を備えることを特徴とする。
【００１１】
また、本発明は、ネットワーク上の複数のサーバ装置から予め定められた条件を満たす情報が取得され、取得された個々の情報に対してその取得元を識別する情報が付加された文書データ中に含まれるスクリプトを実行するスクリプト付き文書処理装置であって、読み込んだ前記文書データを構成する要素の構造を解析し、前記要素間の関係を示す全体文書構造データを生成する全体文書構造解析手段と、スクリプトを実行するスクリプト実行手段と、前記文書データを読み込むと、該文書データ内のスクリプト中の変数と関数を、前記文書データ内で一意的に識別することができる名称に変換する第１の処理と、前記全体文書構造データの生成時に、前記要素間の関係を前記文書データのうちスクリプトを有する要素の取得元ごとに分類した取得元別文書構造データを生成するスクリプトを前記文書データに付加する第２の処理と、前記スクリプト実行手段によって実行中のスクリプトと同じ取得元の取得元別文書構造データのみを前記スクリプト実行手段がアクセス可能とするスクリプトを前記文書データに付加する第３の処理と、を実行するスクリプト加工手段と、を備えることを特徴とする。
【００１２】
さらに、本発明は、ネットワーク上の複数のサーバ装置から予め定められた条件を満たす情報を取得し、取得した個々の情報に対してその取得元を識別する情報を付加した文書データを、端末装置の要求にしたがって提供する文書取得装置であって、前記文書データ内のスクリプト中の変数と関数を、前記文書データ内で一意的に識別することができる名称に変換する第１の処理と、前記端末装置による前記文書データを構成する要素間の関係を示す全体文書構造データの生成と同時に、前記要素間の関係を前記文書データのうちスクリプトを有する要素の取得元ごとに分類した取得元別文書構造データを生成するスクリプトを前記文書データに付加する第２の処理と、前記端末装置によって実行中のスクリプトと同じ取得元の取得元別文書構造データのみを前記端末装置がアクセス可能とするスクリプトを前記文書データに付加する第３の処理と、を実行するスクリプト加工手段を備えることを特徴とする。
【００１３】
また、本発明は、ネットワーク上の複数のサーバ装置から予め定められた条件を満たす情報を取得し、取得した個々の情報に対してその取得元を識別する情報を付加して文書データを生成する文書データ生成手段を有する文書取得装置と、前記文書取得装置から取得した前記文書データを構成する要素の構造を解析し、前記要素間の関係を示す全体文書構造データを生成する全体文書構造解析手段と、前記文書データに基づいて、前記要素間の関係を前記文書データのうちスクリプトを有する要素の取得元ごとに分類して取得元別文書構造データを生成する取得元別文書構造解析手段と、前記取得元ごとに、前記文書データに含まれるスクリプトが実行される起点であるスクリプト実行位置を抽出してスクリプト実行位置データを生成するスクリプト抽出手段と、あるスクリプトが実行されるとき、そのスクリプトのスクリプト実行位置から特定される前記スクリプト実行位置データに基づいてスクリプトを実行するスクリプト実行手段と、前記スクリプト実行手段によって実行中の前記スクリプトが前記文書データにアクセスする際に、前記スクリプトと同じ取得元の取得元別文書構造データに対してのみアクセス可能とするアクセス制限手段と、を有するスクリプト付き文書処理装置と、を備えることを特徴とする。
【００１４】
さらに、本発明は、ネットワーク上の複数のサーバ装置から予め定められた条件を満たす情報を取得し、取得したサーバ装置を識別する識別情報を付加して文書データを加工する文書データ生成手段を有する文書取得装置と、前記文書取得装置から取得した前記文書データを構成する要素の構造を解析し、前記要素間の関係を示す全体文書構造データを生成する全体文書構造解析手段と、前記文書データ中のスクリプトを実行するスクリプト実行手段と、前記文書データを読み込むと、該文書データ内のスクリプト中の変数と関数を、前記文書データ内で一意的に識別することができる名称に変換する処理と、前記全体文書構造データの生成時に、前記要素間の関係を前記文書データのうちスクリプトを有する要素の取得元ごと分類した取得元別文書構造データを生成するスクリプトを前記文書データに付加する処理と、前記スクリプト実行手段によって実行中のスクリプトが前記文書データにアクセスする際に、前記スクリプト実行手段が実行されるスクリプトと同じ取得元の取得元別文書構造データのみをアクセス可能とするスクリプトを前記文書データに付加する処理と、を実行するスクリプト加工手段と、を有するスクリプト付き文書処理装置と、を備えることを特徴とする。
【００１５】
また、本発明は、ネットワーク上の複数のサーバ装置から予め定められた条件を満たす情報を取得し、取得した個々の情報に対してその取得元を識別する情報を付加して文書データを生成する文書データ生成手段と、前記文書データ内のスクリプト中の変数と関数を、前記文書データ内で一意的に識別することができる名称に変換する処理と、端末装置によって前記文書データを構成する要素間の関係を示す全体文書構造データの生成と同時に、前記要素間の関係を前記文書データのうちスクリプトを有する要素の取得元ごとに分類した取得元別文書構造データを生成するスクリプトを前記文書データに付加する処理と、前記端末装置が、実行されるスクリプトと同じ取得元の取得元別文書構造データのみをアクセス可能とするスクリプトを前記文書データに付加する処理と、を実行するスクリプト加工手段と、を有する文書取得装置と、前記文書取得装置から取得した前記文書データを構成する要素の構造を解析し、前記要素間の関係を示す全体文書構造データを生成する全体文書構造解析手段と、前記文書データ中のスクリプトに基づいて前記スクリプトを実行するスクリプト実行手段と、を有する端末装置と、を備えることを特徴とする。
【００１６】
さらにまた、本発明は、ネットワーク上の複数のサーバ装置から取得した予め定められた条件を満たす情報にその取得元を識別する情報が付された文書データを文書取得装置から取得した端末装置が、前記文書データ中に含まれるスクリプトをスクリプト実行手段によって実行するスクリプト付き文書処理方法であって、前記文書取得装置から取得した前記文書データを構成する要素の構造を解析し、前記要素間の関係を示す全体文書構造データを生成する工程と、前記全体文書構造データに基づいて、前記要素間の関係を前記文書データのうちスクリプトを有する要素の取得元ごとに分類した取得元別文書構造データを生成する工程と、前記取得元ごとに、前記文書データに含まれるスクリプトが実行される起点であるスクリプト実行位置を抽出してスクリプト実行位置データを生成する工程と、あるスクリプトが実行されるとき、そのスクリプトのスクリプト実行位置から特定される前記スクリプト実行位置データに基づいてスクリプトを前記スクリプト実行手段に設定する工程と、前記スクリプト実行手段によって実行中の前記スクリプトが前記文書データにアクセスする際に、前記スクリプトと同じ取得元の取得元別文書構造データに対してのみアクセス可能とする工程と、を含むことを特徴とする。
【００１７】
また、本発明は、ネットワーク上の複数のサーバ装置から取得した予め定められた条件を満たす情報にその取得元を識別する情報が付された文書データを文書取得装置から取得した端末装置が、前記文書データ中に含まれるスクリプトをスクリプト実行手段によって実行するスクリプト付き文書処理方法であって、前記文書取得装置または前記端末装置が、前記文書データ内のスクリプト中の変数と関数を、前記文書データ内で一意的に識別することができる名称に変換する処理と、前記端末装置による後の工程での全体文書構造データの生成時に、該全体文書構造データに基づいて、前記要素間の関係を前記文書データのうちスクリプトを有する要素の取得元ごとに分類した取得元別文書構造データを生成するスクリプトを前記文書データに付加する処理と、後の工程で前記スクリプト実行手段によって実行されるスクリプトと同じ取得元の取得元別文書構造データのみを前記スクリプト実行手段がアクセス可能とするスクリプトを前記文書データに付加する処理と、を実行する工程と、前記端末装置が、前記文書データを構成する要素の構造を解析し、前記要素間の関係を示す全体文書構造データを生成する工程と、前記端末装置のスクリプト実行手段が、前記文書データ中のスクリプトに基づいて前記スクリプトを実行する工程と、を含むことを特徴とする。
【００１８】
さらに、本発明は、ネットワーク上の複数のサーバ装置から取得した予め定められた条件を満たす情報にその取得元を識別する情報が付された文書データを取得すると、前記文書データを構成する要素の構造を解析し、前記要素間の関係を示す全体文書構造データを生成する工程と、前記全体文書構造データに基づいて、前記要素間の関係を前記文書データのうちスクリプトを有する要素の取得元ごとに分類した取得元別文書構造データを生成する工程と、前記取得元ごとに、前記文書データに含まれるスクリプトが実行される起点であるスクリプト実行位置を抽出してスクリプト実行位置データを生成する工程と、あるスクリプトが実行されるとき、そのスクリプトのスクリプト実行位置から特定される前記スクリプト実行位置データに基づいてスクリプトを実行するように設定する工程と、前記スクリプト実行手段によって実行中の前記スクリプトが前記文書データにアクセスする際に、前記スクリプトと同じ取得元の取得元別文書構造データに対してのみアクセス可能とする工程と、を含むスクリプト付き文書処理方法をコンピュータに実行させることを特徴とする。
【００１９】
また、本発明は、ネットワーク上の複数のサーバ装置から取得した予め定められた条件を満たす情報にその取得元を識別する情報が付された文書データを取得すると、前記文書データ内のスクリプト中の変数と関数を、前記文書データ内で一意的に識別することができる名称に変換する処理と、後の工程での全体文書構造データの生成時に、該全体文書構造データに基づいて、前記要素間の関係を前記文書データのうちスクリプトを有する要素の取得元ごとに分類した取得元別文書構造データを生成するスクリプトを前記文書データに付加する処理と、後の工程でのスクリプトの実行中に、実行されるスクリプトと同じ取得元の取得元別文書構造データのみをアクセス可能とするスクリプトを前記文書データに付加する処理と、を実行する工程と、読み込んだ前記文書データを構成する要素の構造を解析し、前記要素間の関係を示す全体文書構造データを生成する工程と、前記文書データ中のスクリプトに基づいて前記スクリプトを実行する工程と、を含むスクリプト付き文書処理方法をコンピュータに実行させることを特徴とする。
【００２０】
この発明によれば、スクリプトは取得元ごとに格納され、スクリプト実行手段はスクリプト実行位置に基づいたスクリプトを設定して実行するので、文書データ中に取得元の異なるスクリプトが含まれている場合でも、スクリプト間での干渉が起こることがない。また、スクリプト実行手段によるスクリプトの実行時に文書データの参照が必要な場合には、アクセス制限手段によってスクリプト実行手段は実行中のスクリプトと同じ取得元の取得元別文書構造データのみにしかアクセスできないので、スクリプト実行手段が実行中のスクリプトと取得元の異なる取得元別文書構造データを参照することがない。
【００２１】
また、この発明によれば、文書データ内のスクリプト中の変数と関数を、文書データ内で一意的に識別することができる名称に変換する第１の処理を文書データの読み込み時に行うことで、異なる取得元に属するスクリプト変数と関数の名称が文書データ中で重なることがない。これによって、スクリプト実行手段に設定されるスクリプト名は文書データ中で一意に定まる。さらに、全体文書構造データの生成時に、要素間の関係を文書データのうちスクリプトを有する要素の取得元ごとに分類した取得元別文書構造データを生成するスクリプトを文書データに付加する第２の処理と、実行されるスクリプトと同じ取得元の取得元別文書構造データのみをスクリプト実行手段がアクセス可能とするスクリプトを文書データに付加する第３の処理とを、文書取得装置での文書データ生成時またはスクリプト月文書処理装置（端末装置）での文書データの読み込み時に行うことで、これらの処理がスクリプト付き文書処理装置（端末装置）のスクリプト実行手段によって実行される。これによって、スクリプト実行手段は実行中のスクリプトと同じ取得元の取得元別文書構造データのみにしかアクセスすることができない。その結果、スクリプト実行手段が実行中のスクリプトと取得元の異なる取得元別文書構造データを参照することがない。
【発明の効果】
【００２２】
本発明によれば、スクリプト実行位置に応じて、取得元ごとに分類して格納されたスクリプトがスクリプト実行手段に設定され、しかもスクリプト実行手段は設定されたスクリプトと同じ取得元の取得元別文書構造データにしかアクセスできないので、スクリプト実行手段に設定されたスクリプトに誤った入力が入力されることがなく、正確にスクリプトが実行されるという効果を有する。また、読み込んだ文書データを予め設定された場所へと転送する処理を実行するような悪意のスクリプトがスクリプト実行手段に設定された場合でも、スクリプト実行手段がアクセス可能な文書データの範囲には制限がかけられるので、実質的に悪意のスクリプトを無効化することができる。たとえば、文書データに秘密性を有する情報が含まれている場合に有効である。
【００２３】
また、本発明によれば、スクリプトに含まれるスクリプト変数や関数の名称を、文書データ中で一意に識別可能なように変換するとともに、文書データが読み込まれたスクリプト付き文書処理装置（端末装置）で生成される全体文書構造データとともに取得元別文書構造データを生成する処理と、スクリプト実行手段が実行中のスクリプトと同じ取得元別文書構造データのみをアクセスする処理とをスクリプトとして文書データに付加するようにしたので、上記の処理をスクリプトとして記述することで、これらの処理を行うための手段をスクリプト付き文書処理装置（端末装置）に設ける必要がないという効果を有する。また、これらの処理を文書取得装置に行わせることによってもスクリプト付き文書処理装置（端末装置）側にこれらの処理を行うための手段を設ける必要がなくなる。これによって、スクリプトを実行する機能を有する従来の端末装置でも、上記スクリプト付きの文書データを実行することが可能となる。さらに、スクリプト付き文書処理装置（端末装置）にスクリプト実行位置に応じてスクリプト実行手段にスクリプトが設定された際に、スクリプト実行手段は設定されたスクリプトに対応するスクリプト変数を確実に取得してスクリプトを実行することができるという効果を有する。さらにまた、スクリプト実行手段は設定したスクリプトと同じ取得元の取得元別文書構造データにしかアクセスできないので、設定されたスクリプトに誤った入力が入力されることがなく、正確にスクリプトが実行されるという効果を有する。たとえば、スクリプトに想定外の入力が与えられることによる誤った処理が実行されることを防ぐことができる。
【発明を実施するための最良の形態】
【００２４】
以下に添付図面を参照して、本発明にかかるスクリプト付き文書処理装置、文書取得装置、スクリプト付き文書処理システム、スクリプト付き文書処理方法およびその方法をコンピュータに実行させるためのプログラムの好適な実施の形態を詳細に説明する。なお、これらの実施の形態によりこの発明が限定されるものではない。
【００２５】
（実施の形態１）
図１は、本発明にかかるスクリプト付き文書処理システムの概略構成を示すブロック図である。このスクリプト付き文書処理システムは、種々の情報であるコンテンツを提供するＷｅｂサーバ１ａ，１ｂと、Ｗｅｂサーバ１ａ，１ｂから予め定められた条件に従う情報を取得する文書取得装置２と、Ｗｅｂサーバ１ａ，１ｂや文書取得装置２の有する情報を閲覧する端末装置３ａとが、インターネットなどの広域のネットワーク６に接続される構成を有する。このＷｅｂサーバ１ａ，１ｂ、文書取得装置２および端末装置３ａ間での通信プロトコルとして、ＴＣＰ（Transmission Control Protocol）／ＩＰ（Internet Protocol）プロトコルが利用されるものとする。なお、この図１では、広域のネットワーク６に、たとえば一つの社内で構築されるイントラネットなどのＬＡＮ（Local Area Network）５が接続される様子も示されている。このＬＡＮ５は、ＬＡＮ５内でのみ閲覧可能な情報がファイル格納部１１ｃに格納されるサーバ装置１ｃと、端末装置３ｂ、３ｃとを含んで構成され、ゲートウェイ４を介して広域のネットワーク６に接続される。
【００２６】
Ｗｅｂサーバ１ａ，１ｂとサーバ装置１ｃ（以下では、Ｗｅｂサーバ１ａ，１ｂとサーバ装置１ｃとを区別する必要がない場合にはこれらをまとめてサーバ１と表記する）は、テキストファイルや画像ファイルなどのコンテンツを格納するファイル格納部１１ａ〜１１ｃと、端末装置３ａ〜３ｃや文書取得装置２からの要求に基づいてコンテンツの提供を行う通信部１２ａ〜１２ｃと、を有する。サーバ１の提供するコンテンツとして、ＨＴＭＬやＸＭＬなどのマークアップ言語で作成されるデータファイルを例示することができる。なお、以下の説明では、サーバ１の提供するコンテンツとして、文書のほかにプログラムやプログラムに使用されるデータを含むものとする。
【００２７】
文書取得装置２は、サーバ１や端末装置３などとの間で通信を行う通信部２１と、広域のネットワーク６に接続されるＷｅｂサーバ１ａ，１ｂから一つ以上の予め定められた条件に従う情報を含むコンテンツを予め定められたタイミングで取得して一つの文書としてまとめるとともに、取得したコンテンツの内容を取得元別に識別することが可能な取得元識別情報を付した文書データを生成する文書データ生成部２２と、生成した文書データを格納する文書データ格納部２３と、を有する。ここで、予め定められた条件に従う情報としては、たとえば、プロ野球に関する情報、プロ野球のある特定の球団に関する情報、ある国に関するニュース、ある技術分野に関する論文集などを例示することができる。また、この文書取得装置２は、一つ以上の上記予め定められた条件に従う情報を広域のネットワーク６に接続されるアクセス可能なすべてのサーバ１から収集するものであってもよいし、予め定められたサーバ１のみから収集するものであってもよい。文書取得装置２の生成する文書データは、サーバ１の提供するコンテンツを集約するものであるので、文書のほかにプログラムやプログラムに使用されるデータを含むものとする。なお、文書取得装置２はソフトウェアとして実現することも可能であり、図１の符号２に示されるように文書取得装置２として単体でネットワーク６に接続される場合に限られず、図１の符号３ｃに示されるように端末装置に文書取得装置２の機能を実現するソフトウェアを組み込んだ文書取得装置付き端末装置とすることも可能である。
【００２８】
なお、本明細書で、文書取得装置２によって生成される文書データの構造を予め定められた基準に従って複数に分類したときに得られる個々の構成要素を「要素」と呼ぶものとする。ただし、分類された要素の内容中には複数のサーバ１から取得したコンテンツが含まれてはいけないものとする。
【００２９】
端末装置３ａ，３ｂは、サーバ１や文書取得装置２の有する情報を取得して閲覧や処理を行う装置であるが、本発明では文書取得装置２によって生成された文書データを閲覧する場合を例に取り上げるので、スクリプト付き文書処理装置となる。図面では、スクリプト付き文書処理装置３ａ，３ｂのことを端末装置３ａ，３ｂと表記しており、また以下の説明ではスクリプト付き文書処理装置のことを端末装置と表現することもある。図２は、このスクリプト付き文書処理装置の主要構成を示す機能ブロック図である。スクリプト付き文書処理装置（端末装置）３は、スクリプト付き文書処理装置３を動作させるために必要な処理プログラムが格納されるオペレーティングシステム（以下、ＯＳという）３１と、ネットワーク６上のサーバ１や文書取得装置２などの情報処理端末の有するデータファイルを閲覧するＷｅｂブラウザ３２と、Ｗｅｂブラウザ３２による処理に必要なファイルやデータを保持するための記憶部３３と、Ｗｅｂブラウザ３２によって処理される情報をスクリプト付き文書処理装置３の使用者に表示出力する表示部３４と、使用者からの命令などが入力される入力部３５と、を有する。
【００３０】
ＯＳ３１は、Ｗｅｂブラウザ３２によって処理されたデータファイルを表示部３４に表示させるための表示処理部４１を有する。また、Ｗｅｂブラウザ３２の通信部４２による通信よりも下層の通信（たとえば、ＴＣＰ／ＩＰプロトコルを用いた通信）を行う機能も有している。
【００３１】
Ｗｅｂブラウザ３２は、ネットワーク６に接続されるや文書取得装置２の公開する文書データを取得するための処理を行う通信部４２と、取得した文書データの文書構造を解析する文書解析部４３と、取得した文書データのうちテキストデータの表示処理を行うテキストデータ処理部４４と、取得した文書データのうち画像ファイルの表示処理を行う画像処理部４５と、取得した文書データに含まれるスクリプトを実行するスクリプト実行部４６と、Ｗｅｂブラウザ３２のサーバ１へのアクセスの可否を判定するアクセス許可判定部４７と、を有する。
【００３２】
通信部４２は、たとえば、ＨＴＴＰ（HyperText Transfer Protocol）プロトコルを用いてネットワーク６に接続される文書取得装置２の所有する文書データの要求および取得を行う機能を有する。取得した文書データ３３１は、記憶部３３に格納される。
【００３３】
文書解析部４３は、取得した文書データ３３１全体の文書構造を解析し全体文書構造データ３３２を生成する全体文書構造解析部４３１と、取得した文書データ３３１のうちスクリプトを有する情報を提供したサーバ１すなわち取得元を抽出する取得元抽出部４３２と、抽出された取得元と同じ取得元の要素について取得元ごとに文書構造を解析して取得元別文書構造データ３３４を生成し、文書データ３３１全体の文書構造との対応付けを行う取得元別文書構造解析部４３３と、スクリプトを取得元別に抽出して格納する取得元別スクリプト抽出部４３４と、スクリプト実行部４６による文書データ３３１の参照をスクリプトと同じ取得元の取得元別文書構造データ３３４のみに制限するアクセス制限部４３５と、スクリプト実行部４６による取得元別文書構造データ３３４へのアクセスを全体文書構造データ３３２へのアクセスに変換する文書データアクセス変換部４３６と、を有する。ここで、全体文書構造解析部４３１と取得元抽出部４３２は、特許請求の範囲における全体文書構造解析手段に対応している。なお、この明細書では、上述したように文書データ３３１は異なる取得元からのコンテンツを集約したものであるので、この文書データ３３１の全体の構造を指すときは全体文書構造データ３３２といい、文書データ３３１内の一つの取得元における要素間の構造を指すときは取得元別文書構造データというものとする。
【００３４】
全体文書構造解析部４３１は、通信部４２によって文書取得装置２から取得して格納された文書データ３３１を読み込み、文書データ３３１を構成する要素間の関係を解析する機能を有する。たとえば、マークアップ言語によって作成される文書データ３３１は、一般的に要素と呼ばれる一対のタグによって囲まれて記述される構造の羅列によって構成されているが、このようなマークアップ言語によって作成される文書データ３３１の場合には、要素の羅列の順番や包含関係、親子関係などのいずれかの関係に基づいて文書構造が解析される。全体文書構造解析部４３１によって解析された構造は、全体文書構造データ３３２として記憶部３３に格納され、テキストデータ処理部４４や画像処理部４５などによる処理の際に使用される。
【００３５】
取得元抽出部４３２は、取得された文書データ３３１中にスクリプトが含まれる場合、そのスクリプトが含まれる要素を提供したサーバ１、すなわち取得元を抽出し、取得元一覧表３３３を生成する機能を有する。生成された取得元一覧表３３３は記憶部３３に格納される。この取得元一覧表３３３に基づいて、取得元別文書構造データ３３４が生成され、またスクリプトやスクリプト変数などが抽出される。
【００３６】
取得元別文書構造解析部４３３は、全体文書構造データ３３２から、取得元抽出部４３２によって抽出された取得元ごとに要素を抽出し、その文書構造を解析する機能を有する。具体的には、全体文書構造データ３３２に基づいて、要素間の関係を文書データ３３１のうちスクリプトを有する要素の取得元ごとに分類した取得元別文書構造データ３３４を生成する。生成された取得元別文書構造データ３３４は記憶部３３に格納される。また、取得元別文書構造解析部４３３は、解析した取得元別文書構造データ３３４を構成する要素と、全体文書構造データ３３２を構成する要素との対応関係を示す文書構造対応表３３５を作成する機能も有する。この文書構造対応表３３５も記憶部３３に格納される。なお、この文書構造対応表３３５は、特許請求の範囲における文書構造対応情報に対応している。
【００３７】
取得元別スクリプト抽出部４３４は、文書データ３３１に含まれるスクリプトを取得元別に抽出する機能を有する。抽出されたスクリプトは取得元別に分類され、取得元別スクリプトデータ３３６として記憶部３３に格納される。また、スクリプトに含まれるスクリプト変数も取得元別に分類され、取得元別スクリプト変数データ３３７として記憶部３３に格納される。さらに、スクリプトが実行される起点であるエントリポイントを抽出されたスクリプトについてまとめたエントリポイントデータ３３８も記憶部３３に格納される。なお、このエントリポイントは、特許請求の範囲におけるスクリプト実行位置に対応し、エントリポイントデータ３３８は、同じくスクリプト実行位置データに対応している。
【００３８】
アクセス制限部４３５は、スクリプト実行部４６がスクリプト実行中に、スクリプト実行部４６が、実行されるスクリプトと同じ取得元の取得元別文書構造データ３３４に対してのみアクセス可能とする機能を有する。これによって、スクリプトと同じ取得元の取得元別文書構造データのみしかスクリプト実行部４６は参照できない。すなわち、スクリプト実行部４６による文書データ３３１全体への参照が制限される。
【００３９】
文書データアクセス変換部４３６は、スクリプト実行部４６によるスクリプトの実行中に、文書データ３３１の内容の更新や削除などの変更がある場合に、スクリプト実行部４６のアクセス先を、文書構造対応表３３５に基づいて取得元別文書構造データ３３４中の要素からこの要素に対応する全体文書構造データ３３２中の要素に変換する機能を有する。これによって、スクリプト実行部４６は、間接的に文書データ３３１にアクセスすることができ、文書データ３３１の内容や構造を変更する場合にも、その変更を文書データ３３１に反映させることができる。
【００４０】
テキストデータ処理部４４は、文書解析部４３によって解析された文書データ３３１のうちテキストデータを表示するための処理を行う機能を有する。また、画像処理部４５は、文書解析部４３によって解析された文書データ３３１に画像ファイルの表示指示が含まれている場合に、必要な画像ファイルが格納されているＵＲＬからダウンロードし、表示するための処理を行う機能を有する。
【００４１】
スクリプト実行部４６は、イベントなどの発生によって実行されるスクリプトを設定するスクリプト設定部４６１と、設定されたスクリプトを実行するスクリプト解釈部４６２と、を有する。スクリプト設定部４６１は、スクリプト付き文書処理装置３の使用者などによる入力などの何らかのイベントが発生すると、エントリポイントデータ３３８を参照して該イベントの発生によって実行されるスクリプトを抽出し、抽出したスクリプトを該スクリプトと同じ取得元のスクリプト変数とともにスクリプト解釈部４６２に設定する機能を有する。一つのイベントについて取得元の異なる複数のスクリプトが、エントリポイントデータ３３８に登録されている場合には、個々の取得元ごとにスクリプトを実行する。この実行は取得元を切り替えて直列に実行する。
【００４２】
スクリプト解釈部４６２は、スクリプト設定部４６１によって設定されたスクリプトを解釈して実行する。このとき、スクリプト解釈部４６２は、アクセス制限部４３５によって実行中のスクリプトと同じ取得元の取得元別文書構造データ３３４しかアクセスすることができない。また、スクリプト解釈部４６２によるスクリプトの実行中に文書データ３３１の内容の削除や更新などの変更が行われる場合には、スクリプト解釈部４６２のアクセス先が、取得元別文書構造データ３３４中の変更される要素からこの要素に対応する全体文書構造データ３３２中の要素へと、文書データアクセス変換部４３６によって変換され、該要素の変更が実行される。
【００４３】
アクセス許可判定部４７は、画像処理部４５やスクリプト実行部４６などが文書データ３３１の内容に基づいてＷｅｂサーバや他のＷｅｂサーバへのアクセスを行う際に、該アクセスを行うＵＲＬを悪意のあるサイトなどのＵＲＬが掲載されたアクセス許可情報と比較して、そのアクセスの可否を判定する機能を有する。たとえば、文書データ３３１の要素にはその取得元を識別する取得元識別情報としてＵＲＬが付加されているので、その取得元識別情報とアクセス許可情報とを比較する。これによって、取得元識別情報として付加されているＵＲＬがアクセス許可情報に含まれている場合には悪意のサイトとしてアクセスすることを禁止する。これによって、悪意のあるサイトなどへのアクセスを未然に防止することが可能となる。なお、アクセス許可情報には悪意のあるサイトや有害なサイトが登録されているものであってもよいし、アクセスが可能なサイトのみを登録するものであってもよい。
【００４４】
記憶部３３は、上述した通信部４２によって得られる文書データ３３１や文書解析部４３によって生成される全体文書構造データ３３２、取得元別文書構造データ３３４、文書構造対応表３３５、取得元別スクリプトデータ３３６、取得元別スクリプト変数データ３３７、エントリポイントデータ３３８などを記憶する機能を有し、ハードディスクドライブやメモリによって構成される。また、表示部３４は、Ｗｅｂブラウザ３２によって処理された文書データ３３１を、ＯＳ３１の表示処理部４１を介して使用者に表示出力する。入力部３５は、表示部３４に表示されるＷｅｂブラウザに処理された内容に対して、使用者が入力を与えることができるものであり、キーボードやマウスなどによって構成される。
【００４５】
なお、図１の符号３ｃで示されるように、端末装置が文書取得装置２の機能を有する場合には、該端末装置３ｃは、図２に示される機能構成に加えて文書取得装置２の文書データ生成部２２を有し、文書データ生成部２２によって生成された文書データ３３１は記憶部３３に格納される。
【００４６】
つぎに、このような構成を有するスクリプト付き文書処理装置３の動作処理について説明する。スクリプト付き文書処理装置３は、スクリプト付き文書を読み込んだときに実行される初期化処理と、初期化処理終了後のイベントの発生によって実行されるスクリプト実行処理とを含む処理を行う。最初に、初期化処理について図３のフローチャートを参照しながら説明する。この図３は、文書取得装置２がスクリプト付き文書処理装置３とは別個に設けられる場合を例に挙げている。
【００４７】
まず、スクリプト付き文書処理装置３の使用者によってＷｅｂブラウザ３２を介して文書取得装置２の有する文書データ３３１へのアクセス要求がなされると、スクリプト付き文書処理装置３は、ＨＴＴＰリクエストメッセージを文書取得装置２に対して送信し（ステップＳ１１）、文書取得装置２からＨＴＴＰレスポンスメッセージを受信し（ステップＳ１２）、使用者によって所望される文書データ３３１が記憶部３３に格納される（ステップＳ１３）。図４−１に、文書取得装置によって生成される文書データの構成の一例を示す。これは、概念的なものであり、実際に使用される文書データ３３１とは異なるものである。この文書データ３３１は、要素Ａ〜要素Ｊを含み、それぞれの要素に取得元識別情報として、その要素の取得元であるＵＲＬであるＵＲＬ１またはＵＲＬ２が付されている。また、要素Ｅ、要素Ｉおよび要素Ｊは、それぞれＳＣＰ１、ＳＣＰ２およびＳＣＰ３という名称のスクリプトを含む要素であるものとする。
【００４８】
全体文書構造解析部４３１は、記憶部３３に格納された文書データ３３１を解析し、文書データ３３１の全体構造を抽出し、全体文書構造データ３３２を生成して記憶部３３に格納する（ステップＳ１４）。図４−２に、全体文書構造データの一例を示す。この図４−２に示される例では、全体文書構造データ３３２は、文書データ３３１が要素ごとに分解され、それぞれの要素を羅列した構造となっている。つぎに、取得元抽出部４３２は、スクリプトを含む要素を抽出してその取得元を取得し、取得元一覧表３３３を生成する（ステップＳ１５）。なお、２回目以降に同じ取得元が取得された場合には、その取得元は取得元一覧表３３３には記載されない。図４−３に取得元一覧表の一例を示す。項目「要素」にはスクリプトが含まれる要素名が格納され、項目「取得元」には要素の取得元であるＵＲＬが格納される。
【００４９】
つぎに、取得元別文書構造解析部４３３は、ステップＳ１５で生成された取得元一覧表３３３に記載されている取得元についてその文書データ３３１を解析し、取得元別文書構造データ３３４を生成して記憶部３３に格納する（ステップＳ１６）。図４−４に取得元別文書構造データ３３４の一例を示す。この図４−４では、取得元が「ＵＲＬ１」である取得元別文書構造データ３３４については、新たな要素名ａ１〜ａ６の羅列によって表現されており、取得元が「ＵＲＬ２」である取得元別文書構造データ３３４については、新たな要素名ｂ１〜ｂ４の羅列によって表現されている。また、取得元別文書構造解析部４３３は、取得元別文書構造データ３３４の構造を全体文書構造データ３３２の構造に対応付けした文書構造対応表３３５を生成して記憶部３３に格納する（ステップＳ１７）。図４−５に文書構造対応表３３５の一例を示す。この図４−５では、項目「取得元別文書構造データの要素名」にステップＳ１６で生成された取得元別文書構造データ３３４の要素名が格納され、項目「全体文書構造データ３３２の要素名」にテップＳ１４で生成された全体文書構造データ３３２の要素名が格納され、取得元別文書構造データ３３４の要素と全体文書構造データ３３２の要素との間の対応関係が示されている。
【００５０】
そして、取得元別に文書データ３３１からスクリプトおよびスクリプト変数を抽出するとともに、抽出したスクリプトのエントリポイントを取得し、それぞれ取得元別スクリプトデータ３３６、取得元別スクリプト変数データ３３７およびエントリポイントデータ３３８として記憶部３３に格納して（ステップＳ１８）、初期化処理が終了する。図４−６に取得元別スクリプトデータの一例を示し、図４−７に取得元別スクリプト変数データの一例を示し、図４−８にエントリポイントデータの一例を示す。図４−７の取得元別スクリプトデータ３３６において、スクリプトＳＣＰ１〜ＳＣＰ３のそれぞれのスクリプト変数をｘ（ＳＣＰ１），ｙ（ＳＣＰ２），ｚ（ＳＣＰ３）としている。
【００５１】
つぎに、スクリプト実行処理について図５のフローチャートを参照しながら説明する。まず、スクリプトが実行されるイベントが発生したか否かが判定され（ステップＳ２１）、イベントが発生するまで待ち状態となる（ステップＳ２１でＮｏの場合）。たとえば、スクリプト初期化処理の終了イベントや使用者による入力イベントなどのイベントが発生すると（ステップＳ２１でＹｅｓの場合）、スクリプト設定部４６１は発生したイベントに応じたスクリプトをエントリポイントデータ３３８から抽出し、そのスクリプトとスクリプト変数をスクリプト解釈部４６２に設定する（ステップＳ２２）。スクリプト解釈部４６２は、スクリプトを解釈する際に文書データ３３１のアクセスがある場合には、アクセス制限部４３５を窓口として文書データ３３１へのアクセスを行う。このときアクセス制限部４３５では、スクリプト解釈部４６２で実行されるスクリプトと同じ取得元についての取得元別文書構造データ３３４を選択して設定する（ステップＳ２３）。これによって、スクリプト解釈部４６２は、選択された取得元別文書構造データ３３４の範囲内でのみスクリプトを実行する。
【００５２】
つぎに、スクリプト解釈部４６２によるスクリプトの実行に文書データ３３１の変更があるか否かが判定される（ステップＳ２４）。文書データ３３１の変更がある場合（ステップＳ２４でＹｅｓの場合）には、文書データアクセス変換部４３６は、スクリプト解釈部４６２による取得元別文書構造データ３３４へのアクセスを、文書構造対応表３３５を用いて対応する全体文書構造データ３３２へのアクセスへと変換する（ステップＳ２５）。その後またはステップＳ２４で文書データ３３１に変更がない場合（ステップＳ２４でＮｏの場合）に、スクリプト解釈部４６２によってスクリプトに対応した処理が実行され（ステップＳ２６）、たとえばその結果が表示部３４に表示出力される。
【００５３】
スクリプトに対応した処理の結果、全体文書構造データ３３２に変更があるか否かが判定され（ステップＳ２７）、変更がない場合（ステップＳ２７でＮｏの場合）にはスクリプト実行処理が終了する。一方、全体文書構造データ３３２に変更がある場合（ステップＳ２７でＹｅｓの場合）には、図３のステップＳ１４へと処理が移り、全体文書構造データ３３２の変更に伴う新たな要素の挿入や要素の削除などの処理を全体文書構造データ３３２と取得元別文書構造データ３３４に反映させる処理が実行される。
【００５４】
ここで、上述した処理について具体例を挙げて、図６−１〜図１４を参照しながら説明する。以下に説明する例では、図１におけるＬＡＮ５はＡ社のイントラネットであり、Ａ社のイントラネット内の文書取得装置付き端末装置３ｃが、Ａ社のＬＡＮ５内のサーバ装置１ｃのファイル格納部１１ｃに格納されている社外秘文書と、広域のネットワーク６上のＷｅｂサーバ１ａが提供する電子掲示板システムに掲示されている情報（以下、電子掲示板情報という）とを集約して文書データ３３１を作成し、Ｗｅｂブラウザ３２でそれを閲覧するものとする。また、これらのＷｅｂサーバ１ａやサーバ装置１ｃで公開されるコンテンツ（情報）は、すべてＸＭＬ文書の形式で公開されているものとする。さらに、文書取得装置付き端末装置３ｃ、すなわち文書取得装置２の機能を有するスクリプト付き文書処理装置３ｃにおける文書解析部４３は、取得したＸＭＬ形式の文書データ３３１を、文書データ３３１を構成する要素をツリー構造状に展開して、スクリプト実行部４６からのアクセスを可能としたアプリケーションプログラムインタフェースであるＤＯＭ（Document Object Model）に基づいて動作するものとする。
【００５５】
図６−１は、図１のサーバ装置によってイントラネット内で公開されている情報のＸＭＬ文書の一例であり、図６−２は、図１のＷｅｂサーバによって公開されている電子掲示板情報のＸＭＬ文書の一例である。また、図７は、図６−１〜図６−２から文書取得装置付き端末装置３ｃによって生成された文書データを示す。図６−１に示されるＸＭＬ文書にはスクリプトは含まれておらず、図６−２に示されるＸＭＬ文書にのみスクリプトが含まれているものとする。また、図６−２のＸＭＬ文書に含まれるスクリプトは、悪意のスクリプトであり、スクリプトを含む文書（ドキュメント）を全部予め定められた場所に転送する処理を行うものであるものとする。文書取得装置付き端末装置３ｃによって生成された文書データ３３１は、図６−１と図６−２から取得したＸＭＬ文書中のタグに、取得元識別情報としてＸＭＬ文書が格納されている場所（ＵＲＬ）が付加されたものとなっている。この図７に示される文書データ３３１が、文書取得装置付き端末装置３ｃの記憶部３３に格納され、Ｗｅｂブラウザ３２によって読み込まれるとＷｅｂブラウザ３２の文書解析部４３によってその構造が解析される。
【００５６】
Ｗｅｂブラウザ３２の文書解析部４３の全体文書構造解析部４３１は、図７に示される文書データ３３１を読み込むとツリー構造状に展開する。図８は、全体文書構造解析部によってツリー構造状に展開された全体文書構造データである。図７の文書データ３３１を構成する要素や属性、テキストがツリー構造状に展開されるが、ＸＭＬ文書をＤＯＭに基づいてツリー構造状に展開する方法については公知であるので、詳細な説明は省略する。このツリー構造を構成するそれぞれのノードには、全体文書構造データ３３２中で一意的に識別することが可能な番号（以下、ノード番号という）が付されている。この図８において、矩形で囲まれているノードが要素と属性を表しており、楕円で囲まれているノードがテキストを表している。属性は先頭に「＠」をつけて表現されている。ノード番号「６」〜「２６」が図６−１に示されるＬＡＮ５内のサーバ装置１ｃを取得元とするＸＭＬ文書であり、ノード番号「２７」〜「４９」が図６−２に示される広域のネットワーク６上のＷｅｂサーバ１ａを取得元とするＸＭＬ文書である。また、この図８では、属性「sec: source」が取得元を表現するために導入された属性であり、「sec」という名前空間プレフィクスを付加することで、取得元属性が付加されない場合に対して影響のない形で拡張した表現となっている。
【００５７】
つぎに、取得元抽出部４３２によって、スクリプトを有する要素を含むＸＭＬ文書の取得元が抽出される。たとえば、図８でノード番号が「１」から昇順にノードを検査するものとすると、全体文書構造データ３３２のノード番号「４５」にスクリプトが存在するので、まずノード番号「４５」のノードが抽出され、その取得元は取得元属性が記載されているノード番号「４４」のテキストから「http://underground.example.jp/bbs/」が抽出される。図９に取得元抽出部によって生成された取得元一覧表３３３を示す。文書データ３３１中にはこのほかにスクリプトが含まれないので、取得元一覧表に記載されるＵＲＬは上記のものだけとなる。なお、全体文書構造データ３３２からノードを選択する順番は任意の順番でよく、またスクリプトを含むノードであるか否かの判定は、ノードの要素名がスクリプトを意味する要素名か否かによって判断することができる。
【００５８】
つぎに、取得元別文書構造解析部４３３によって、取得元一覧表３３３に記載されるＵＲＬを取得元とする全体文書構造データ３３２の要素について、取得元ごとにその文書構造がツリー構造状に展開されるとともに、文書構造対応表３３５が生成される。ここで、取得元別文書構造データ３３４と文書構造対応表３３５の生成手順について説明する。まず、取得元別文書構造解析部４３３は、図８に示される全体文書構造データ３３２から深さ優先探索順に各ノードを選び、注目している取得元と同一の取得元を有するノードである場合に、このノードを取得元別文書構造データ３３４の新しいノードとして登録するとともに、文書構造対応表３３５にも登録する。このとき、新しいノードの祖先ノードが既に取得元別文書構造データ３３４に登録されている場合には、新しいノードから最も近い祖先ノードの子ノードとして、新しいノードを登録する。また、新しいノードの祖先ノードが登録されていない場合には、新しいノードをルートノードとして登録する。登録に当たって、それぞれの新しいノードに順番に新たに生成される取得元別文書構造データ３３４内におけるノード番号を割り当てる。さらに、文書構造対応表３３５には、取得元別文書構造データ３３４において割り当てられたノード番号に対して、全体文書構造データ３３２におけるノード番号を登録する。
【００５９】
図１０に取得元が「http://underground.example.jp/bbs/」である文書データ中の要素についてのツリー構造状の取得元別文書構造データを示す。この取得元別文書構造データ３３４の構造は、図８の全体文書構造データ３３２におけるノード番号「２７」〜「４９」が抽出されたものとなっている。また、この図１０に示される取得元別文書構造データ３３４を構成する各ノードには、この取得元別文書構造データ３３４中におけるノードを識別するためのノード番号として「ａ１」〜「ａ２３」が付されている。
【００６０】
図１１に、図１０の取得元別文書構造データに対応する文書構造対応表を示す。この文書構造対応表３３５において、項目「取得元」は、ＵＲＬが「http://underground.example.jp/bbs/」である図１０に示される取得元別文書構造データ３３４におけるノード番号を示すものであり、項目「文書全体」は全体文書構造データ３３２におけるノード番号を示すものである。
【００６１】
つぎに、取得元別スクリプト抽出部４３４によって、文書データ３３１に含まれるスクリプトが抽出される。図８に示される全体文書構造データ３３２のノード番号「４５」にスクリプトが存在するので、取得元別スクリプト抽出部４３４は、取得元のＵＲＬである「http://underground.example.jp/bbs/」に対してノード番号「４５」に含まれるスクリプトを登録する。また、取得元のＵＲＬである「http://underground.example.jp/bbs/」に対してスクリプト抽出部に含まれるスクリプト変数を登録する。さらに、該スクリプトのエントリポイントを登録する。たとえば、図８の全体文書構造データ３３２におけるノード番号「４５」のスクリプトが図１２に示されるような内容を有する場合には、文書データ３３１を読み込んだときにスクリプトが実行されるようになっているので、エントリポイントは、初期化処理終了時となる。図１３−１〜図１３−３に、取得元別スクリプトデータ、取得元別スクリプト変数データ、およびエントリポイントデータを示す。
【００６２】
以上のようにして、Ｗｅｂブラウザ３２によって読み込まれた文書データ３３１は文書解析部４３でスクリプト実行部４６によって実行可能な形式に変換される。そこで、つぎにこの文書データ３３１に含まれるスクリプトが実行される場合について説明する。文書解析部４３によって読み込んだ文書データ３３１についての初期化処理が終了すると、スクリプト設定部４６１によって初期化処理の終了時となるエントリポイントデータ３３８がスクリプト解釈部４６２に設定される。ここでは、図１３−１に示されるように、初期化処理の終了時がエントリポイントとなるスクリプト「documentオブジェクト中のテキストを全部転送するJava（登録商標）scriptコード」がスクリプト解釈部４６２に設定される。このときスクリプト解釈部４６２が参照する文書データ３３１は、実行される「documentオブジェクト中のテキストを全部転送するJava（登録商標）scriptコード」スクリプトと同一の取得元である図１０に示される取得元別文書構造データ３３４である。すなわち、アクセス制限部４３５は、スクリプト解釈部４６２の実行コンテキストの取得元のＵＲＬである「http://underground.example.jp/bbs/」を設定し、この取得元と同一の取得元別文書構造データ３３４を選択する。これによって、スクリプト解釈部４６２が文書データ３３１を参照する場合には、この選択された取得元別文書構造データ３３４が参照されることになる。また、スクリプト解釈部４６２が文書データ３３１の変更などを行う場合には、文書データアクセス変換部４３６が、図１０に示される取得元別文書構造データ３３４にアクセスされた要素のノード番号を、文書構造対応表３３５を用いて全体文書構造データ３３２のノード番号に変換し、該ノード番号によって示されるノードの変更が行われる。
【００６３】
図１４は、スクリプトの実行によって切り出される文書データ中の部分を示している。この図１４に示されるように、スクリプト解釈部４６２によって参照できる文書データ３３１は、全体文書構造データ３３２中のスクリプトと同一の取得元となる取得元別文書構造データ３３４である。そのため、文書取得装置２によって図６−１に示される社外秘のデータファイルと、図６−２と図１２に示される悪意のある者によって文書データ３３１の内容を別の場所に転送するように作成されたスクリプトを有するデータファイルとが同時に集約されたとしても、社外秘のデータファイルの内容はスクリプトに参照されることはないので、その内容が上記スクリプトによって別の場所に転送されることはない。
【００６４】
なお、スクリプトの含まれないＬＡＮ５内のサーバ装置１ｃから集約された文書データ３３１は、全体文書構造解析部４３１によって全体文書構造データ３３２に展開された後に、テキストデータ処理部４４や画像処理部４５によって予め定められた処理がなされ、表示処理部４１によって表示部３４にその内容が表示される。
【００６５】
この実施の形態１によれば、複数のサーバ１のコンテンツから取得した情報を有する文書データ３３１中の要素について、スクリプトを含む取得元ごとに取得元別文書構造データ３３４を生成し、スクリプトが実行される際には、該スクリプトと同じ取得元の取得元別文書構造データ３３４のみがアクセスされるように構成したので、スクリプトが異なる取得元の取得元別文書構造データ３３４を参照することがない。その結果、セキュリティが確保されるという効果を有する。たとえば、スクリプトがアクセス可能な文書データを転送する悪意のあるスクリプトが文書データ３３１に含まれていたとしても、そのスクリプトは自スクリプトと同じ取得元の取得元別文書構造データ３３４にしかアクセスすることができない。そのため、悪意のあるスクリプトを無効化することができる。
【００６６】
また、文書データ３３１内に含まれるスクリプトとスクリプト変数を取得元ごとに格納するようにしたので、文書データ３３１内に取得元の異なる複数のスクリプトが存在する場合でも、スクリプト変数やスクリプト関数が混ざり合うことがない。その結果、イベントの発生に応じて正常にスクリプトが実行される。たとえば、スクリプトに想定外の入力が与えられることによって誤った処理が実行されることを防ぐことができる。
【００６７】
さらに、文書データ３３１内の要素には、取得元を識別するための情報が付加されているので、この情報に基づいてその取得元がアクセスしてよいサイトか否かの判定を行うことができる。その結果、たとえば文書取得装置付き端末装置３ｃのように、文書取得装置２の機能がスクリプト付き文書処理装置と一体となって、同一ホスト上で動作している場合に、Ｗｅｂブラウザ３２が自端末装置３ｃという信頼できる取得元が提供している文書データ３３１であるという誤った判断を回避し、誤ったセキュリティポリシーが適用されて権限の昇格が起こってしまうことを防ぐことができる。
【００６８】
また、取得元別文書構造データ３３４中の要素と全体文書構造データ３３２中の要素とを対応付ける文書構造対応表３３５を生成するように構成したので、スクリプトが文書データの内容の変更や構造の変更を伴う処理を実行する場合でも、その変更を文書データ３３１に反映させることができるという効果を有する。
【００６９】
（実施の形態２）
図１５は、本発明にかかるスクリプト付き文書処理装置の概略構成を模式的に示すブロック図である。このスクリプト付き文書処理装置３は基本的に実施の形態１の図２と同様の構成を有するが、文書解析部４３が、文書データ３３１に予め定められた処理を実行するためのスクリプトを付加するスクリプト加工処理部４３７と、文書データ３３１の構造を解析する全体文書構造解析部４３１とから構成され、記憶部３３が、文書取得装置２から取得する文書データ３３１と、全体文書構造データ３３２と、文書データ３３１中に含まれるスクリプトであるスクリプトデータ３３６ａと、各スクリプトの変数であるスクリプト変数データ３３７ａと、各スクリプトのエントリポイントデータ３３８と、を格納する点で実施の形態１の図２に示されるスクリプト付き文書処理装置３と異なる。なお、実施の形態１の図２と同一の構成要素には同一の符号を付してその説明を省略している。
【００７０】
スクリプト加工処理部４３７は、Ｗｅｂブラウザ３２が文書データ３３１を取得すると、文書データ３３１中に含まれるスクリプト中で定義される変数名と関数名について、文書データ３３１内で同じ変数名や関数名が存在しないように名前を変更する機能を有する。また、スクリプト加工処理部４３７は、全体文書構造解析部４３１によって全体文書構造データ３３２が生成されるときに、全体文書構造データに基づいて、要素間の関係を文書データ３３１のうちスクリプトを有する要素の取得元ごとに分類した取得元別文書構造データを生成し、各要素に該要素と全体文書構造データとの対応関係を示す参照情報を格納する処理をスクリプト実行部４６に実行させるためのスクリプトを付加する機能を有する。さらに、スクリプト加工処理部４３７は、スクリプト実行部４６によって実行中のスクリプトが文書データにアクセスする際に、そのスクリプトと同じ取得元の取得元別文書構造データのみをアクセス可能とし、スクリプト実行部４６が文書データ３３１を更新する場合に取得元別文書構造データと参照情報を参照して全体文書構造データ３３２を更新するとともに更新された全体文書構造データ３３２に基づいて取得元別文書構造データを生成し直す処理をスクリプト実行部４６に実行させるためのスクリプトを付加する機能を有する。すなわち、スクリプト加工処理部４３７は、実施の形態１の図２の文書解析部４３の取得元抽出部４３２、取得元別文書構造解析部４３３、取得元別スクリプト抽出部４３４、アクセス制限部４３５および文書データアクセス変換部４３６によって実行されていた処理をスクリプトとして文書データ３３１に付加する機能を有する。
【００７１】
図１６は、スクリプト加工処理部によって行われる処理を示すフローチャートである。スクリプト加工処理部は、Ｗｅｂブラウザ３２が文書データ３３１を取得すると、最初に文書データ３３１に含まれるスクリプト中で定義される変数名と関数名について、同じ文書データ３３１に同じ名称となる変数名と関数名が存在しないように名称を変更する（ステップＳ４１）。この変数名と関数名の変更の一例として、たとえばスクリプトの取得元を表すＵＲＬなどの情報を変数名や関数名に付加する方法がある。図１７は変数名の変更の一例を示す図である。この図１７に示される例は、スクリプト中の変数を「src + 取得元ＵＲＬのアスキー（ＡＳＣＩＩ）コード１６進数 + _ + 変数」の形に置換する場合を示しており、具体例として図１２に示されるスクリプト中の変数ｘを置換する場合を挙げている。図１２に示されるスクリプトの取得元のＵＲＬは「http://underground.example.jp/bbs/」であるので、これをアスキーコード１６進数で表現したものは、「687474703A2F2F756E64657267726F756E646578616D706C652E6A702F6262732F」となる。したがって、スクリプト加工処理部４３７によって、図１２に示されるスクリプト中の変数「ｘ」は「src687474703A2F2F756E64657267726F756E646578616D706C652E6A702F6262732F_x」に変換される。なお、これは一例であり、文書データ３３１中に含まれるスクリプト変数や関数を一意に識別することができるものであれば、変数名や関数名をどのように変換してもよい。
【００７２】
つぎに、取得元別文書構造データ３３４を作成するスクリプトを文書データ３３１に追加する処理を行う（ステップＳ４２）。このスクリプトは、全体文書構造解析部４３１によって全体文書構造データ３３２が生成される際に同時に実行される。このとき、スクリプトによって作成される取得元別文書構造データには、全体文書構造データ３３２との対応関係を示す参照情報が付加される。そして、スクリプト実行部４６によって全体文書構造データ３３２への参照や更新の処理を記したスクリプトを文書データ３３１に追加する処理を行う（ステップＳ４３）。これは、スクリプト解釈部４６２がスクリプトの実行時に文書データ３３１への参照処理を行う場合に、スクリプト解釈部４６２は実行されるスクリプトと同じ取得元の取得元別文書構造データを参照し、さらにその取得元別文書構造データに付加されている参照情報を用いて全体文書構造データ３３２を参照するようにするものである。また、スクリプト解釈部４６２がスクリプトの実行時に文書データ３３１の更新処理を行う場合にも、同様に取得元別文書構造データを参照し、そこに付加されている参照情報を用いて全体文書構造データ３３２を更新するとともに更新された全体文書構造データ３３２に基づいて取得元別文書構造データを生成し直すようにするものである。このようにして、スクリプト加工処理部４３７によるスクリプトの加工処理が終了する。
【００７３】
記憶部３３に記憶されるスクリプトデータ３３６ａとスクリプト変数データ３３７ａは、実施の形態１では、取得元別に格納されるようにしていたが、実施の形態２ではスクリプト加工処理部４３７によってスクリプト変数と関数の名称が文書データ３３１内で一意に識別されるように変更されているので、取得元別に分類する必要はない。また、スクリプト変数データ３３７ａには、全体文書構造データ３３２の作成を入力として実行されるスクリプトによって生成される取得元別文書構造データと参照情報が格納される。そのため、スクリプト解釈部４６２によって文書データ３３１への参照処理や更新処理が行われる場合には、スクリプト解釈部４６２はスクリプト変数データ中の取得元別文書構造データや参照情報を参照することになる。
【００７４】
このように、スクリプト加工処理部を設けることによって、上述した実施の形態１の文書解析部４３で行っていたスクリプトが参照する取得元別文書構造データを、該スクリプトの取得元と同一の取得元別文書構造データ３３４に限る処理を、スクリプトの記述によって置き換えることが可能となる。なお、この実施の形態２によるスクリプト付き文書処理装置３における動作は、実施の形態１の図３と図５のフローチャートに示される処理と基本的に同一であるので、その説明を省略する。
【００７５】
この実施の形態２によれば、文書データ３３１に含まれるスクリプトで定義される変数名や関数名を取得元ごとに識別できるように変更したので、これらの変数名や関数名が使用されるスクリプトが一意的に定まる。その結果、文書データ３３１内に取得元の異なる複数のスクリプトが存在する場合でも、スクリプト変数やスクリプト関数が混ざり合うことがなく、イベントの発生に応じて正常にスクリプトが実行される。たとえば、スクリプトに想定外の入力が与えられることによって誤った処理が実行されることを防ぐことができる。
【００７６】
また、複数のサーバ１のコンテンツから取得した情報を有する文書データ３３１中の要素について、スクリプトを含む取得元ごとに取得元別文書構造データを生成し、スクリプトが実行される際には、該スクリプトと同じ取得元の取得元別文書構造データのみがアクセスされるように構成したので、スクリプトが異なる取得元の取得元別文書構造データを参照することがない。その結果、セキュリティが確保されるという効果を有する。たとえば、スクリプトがアクセス可能な文書データを転送する悪意のあるスクリプトが文書データ３３１に含まれていたとしても、そのスクリプトは自スクリプトと同じ取得元の取得元別文書構造データにしかアクセスすることができない。そのため、悪意のあるスクリプトを無効化することができる。
【００７７】
さらに、スクリプトの取得元ごとに取得元別文書構造データを生成するなどの実施の形態１で文書解析部によって行われていた処理内容をスクリプトにして、文書データ３３１の読み込み時に文書データ３３１に付加するようにしたので、スクリプト付き文書処理装置３のＷｅｂブラウザ３２にはスクリプトを含む文書データ３３１を取得した場合でも、特別な手段を追加することなく、安全にしかも確実に取得した文書データ３３１の処理を行うことができるという効果も有する。
【００７８】
（実施の形態３）
実施の形態２では、文書取得装置２によって集約された文書データ３３１中のスクリプトについて、スクリプトが参照または更新する文書構造データをスクリプトと同一の取得元である取得元別文書構造データに限るようにするスクリプトを文書データ３３１に付加する処理を端末装置、すなわちスクリプト付き文書処理装置３側で行う場合を示したが、この実施の形態３では、その処理を行うためのスクリプトを文書取得装置２側で文書データ３３１に付加する場合を説明する。
【００７９】
図１８は、本発明にかかるスクリプト付き文書処理システムの実施の形態３の概略構成を示すブロック図であり、図１９は、端末装置の概略構成を示すブロック図である。実施の形態１の図１に示されるスクリプト付き文書処理システムと異なるのは文書取得装置２であり、この文書取得装置２は、実施の形態１の図１における文書取得装置２において、文書データ３３１に予め定められた処理を実行するためのスクリプトを付加するスクリプト加工処理部２４をさらに備えることを特徴とする。このスクリプト加工処理部２４は、実施の形態２のスクリプト付き文書処理装置３におけるスクリプト加工処理部４３７と同様の機能を有し、図１６に示されるものと同一の処理を行うので、その説明を省略する。また、スクリプト付き文書処理装置３である端末装置は、実施の形態２の図１５に示されるスクリプト付き文書処理装置３において、スクリプト加工処理部４３７が除去された構成となっている。すなわち、この実施の形態３におけるスクリプト付き文書処理装置３である端末装置は、サーバ１や文書取得装置２の提供する文書データ３３１を読み込み、表示することが可能なＷｅｂブラウザ３２の機能を有する公知の端末装置によって構成される。
【００８０】
このように、スクリプト加工処理部２４を文書取得装置２側に設けることによって、上述した実施の形態１の文書解析部４３で行っていたスクリプトが参照する取得元別文書構造データを該スクリプトの取得元と同一の取得元別文書構造データ３３４に限る処理を、スクリプトの記述によって置き換えることが可能となる。また、端末装置３側にスクリプト付き文書データ３３１を読み込み実行するために必要な特別な機能を設ける必要がなくなる。なお、この実施の形態３によるスクリプト付き文書処理装置３における動作は、実施の形態１の図３と図５のフローチャートに示される処理と基本的に同一であるので、その説明を省略する。
【００８１】
この実施の形態３によれば、文書データ３３１中に含まれるスクリプトで定義される変数名や関数名を取得元別に識別することが可能なように変更したので、これらの変数名や関数名が使用されるスクリプトが一意的に定まる。その結果、文書データ３３１内に取得元の異なる複数のスクリプトが存在する場合でも、スクリプト変数やスクリプト関数が混ざり合うことがなく、イベントの発生に応じて正常にスクリプトが実行される。たとえば、スクリプトに想定外の入力が与えられることによって誤った処理が実行されることを防ぐことができる。
【００８２】
また、この実施の形態３によれば、文書データ３３１に含まれるスクリプトで定義される変数名や関数名を取得元ごとに識別できるように変更する処理や、スクリプトの取得元ごとに取得元別文書構造データを生成するなどの実施の形態１で文書解析部４３によって行われていた処理内容をスクリプトにして、文書データ３３１の読み込み時に文書データ３３１に付加する処理を文書取得装置２において実行するようにしたので、スクリプト付き文書処理装置３にはスクリプトを含む文書データ３３１を取得した場合でも、特別な手段を追加することなく、安全にしかも確実に取得した文書データ３３１の処理を行うことができるという効果も有する。具体的には、個々の端末装置（スクリプト付き文書処理装置）３のＷｅｂブラウザ３２にスクリプト付き文書データ３３１を読み込んで実行するための特別な機能を持たせる必要がなくなり、投資効率を上げることができるという効果を有する。
【００８３】
さらに、複数のサーバ１のコンテンツから取得した情報を有する文書データ３３１中の要素について、スクリプトを含む取得元ごとに取得元別文書構造データを生成し、スクリプト実行部４６は実行中のスクリプトと同じ取得元の取得元別文書構造データ３３４のみにしかアクセスできないので、スクリプト実行部４６が実行中のスクリプトと異なる取得元の取得元別文書構造データ３３４を参照することがない。その結果、セキュリティが確保されるという効果を有する。たとえば、スクリプト自身と異なる情報発行元のデータを盗むような悪意のあるスクリプトを取得してしまった場合でも、該悪意のあるスクリプトとは異なる取得元別文書構造データ３３４をスクリプト実行部４６はアクセスできないので、悪意のあるスクリプトを無効化することができる。
【００８４】
なお、実施の形態１〜３で示した文書取得装置２によって生成されたスクリプト付き文書データを、セキュリティを高め、他の取得元のスクリプト変数や文書データ内の要素が実行されるスクリプトに入力されることを防止して処理する方法をコンピュータに実行させるためのプログラムとすることも可能である。このスクリプト付き文書処理方法をコンピュータに実行させるためのプログラムは、インストール可能な形式または実行可能な形式のファイルでＣＤ−ＲＯＭ（Compact Disk Read Only Memory）、フロッピー（登録商標）ディスク、ＤＶＤ（Digital Versatile DiscまたはDigital Video Disc）などのコンピュータで読み取り可能な記録媒体に記録されて提供される。また、実施の形態１〜３で示したスクリプト付き文書処理方法をコンピュータに実行させるためのプログラムを、インターネットなどのネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。
【産業上の利用可能性】
【００８５】
以上のように、本発明にかかるスクリプト付き文書処理装置、文書取得装置およびスクリプト付き文書処理システムは、広域のネットワーク上に公開されている複数のコンテンツを集約して予め定められた端末装置に提供するシステムに適している。
【図面の簡単な説明】
【００８６】
【図１】本発明によるスクリプト付き文書処理システムの概略構成を示すブロック図である。
【図２】スクリプト付き文書処理装置の主要構成を示す機能ブロック図である。
【図３】スクリプト付き文書処理装置の初期化処理の手順を示すフローチャートである。
【図４−１】合成装置によって生成される文書データの模式的な構成を示す図である。
【図４−２】全体文書構造データの一例を示す図である。
【図４−３】取得元一覧表の一例を示す図である。
【図４−４】取得元別文書構造データの一例を示す図である。
【図４−５】文書構造対応表の一例を示す図である。
【図４−６】取得元別スクリプトデータの一例を示す図である。
【図４−７】取得元別スクリプト変数データの一例を示す図である。
【図４−８】エントリポイントデータの一例を示す図である。
【図５】スクリプト付き文書処理装置のスクリプト実行処理の手順を示すフローチャートである。
【図６−１】図１のサーバ装置によってイントラネット内で公開されている情報のＸＭＬ文書の一例を示す図である。
【図６−２】図１のＷｅｂサーバによって公開されている電子掲示板情報のＸＭＬ文書の一例を示す図である。
【図７】図６−１〜図６−２から生成された文書データを示す図である。
【図８】ツリー構造状に展開された全体文書構造データを示す図である。
【図９】取得元一覧表を示す図である。
【図１０】ツリー構造状の取得元別文書構造データを示す図である。
【図１１】図１０の取得元別文書構造データに対応する文書構造対応表を示す図である。
【図１２】スクリプトの内容の一例を示す図である。
【図１３−１】取得元別スクリプトデータの一例を示す図である。
【図１３−２】取得元別スクリプト変数データの一例を示す図である。
【図１３−３】エントリポイントデータの一例を示す図である。
【図１４】図１２のスクリプトの実行によって切り出される文書データ中の部分を示す図である。
【図１５】本発明によるスクリプト付き文書処理装置の実施の形態２の概略構成を示すブロック図である。
【図１６】スクリプト加工処理部による処理手順を示すフローチャートである。
【図１７】変数名の変更の一例を示す図である。
【図１８】本発明によるスクリプト付き文書処理システムの実施の形態３の概略構成を示すブロック図である。
【図１９】端末装置の概略構成を示すブロック図である。
【符号の説明】
【００８７】
１ａ，１ｂ  Ｗｅｂサーバ
１ｃ  サーバ装置
２，２ｂ  文書取得装置
３，３ａ，３ｂ  端末装置
３ｃ  合成装置付き端末装置
４  ゲートウェイ
５  ＬＡＮ
６  ネットワーク
１１ａ，１１ｂ，１１ｃ  ファイル格納部
１２ａ，１２ｂ，１２ｃ，２１，４２  通信部
２２  文書データ生成部
２３  文書データ格納部
２４，４３７  スクリプト加工処理部
３１  ＯＳ
３２  Ｗｅｂブラウザ
３３  記憶部
３４  表示部
４１  表示処理部
４３  文書解析部
４４  テキストデータ処理部
４５  画像処理部
４６  スクリプト実行部
４７  アクセス許可判定部
３３１  文書データ
３３２  全体文書構造データ
３３３  取得元一覧表
３３４  取得元別文書構造データ
３３５  文書構造対応表
３３６  取得元別スクリプトデータ
３３６ａ  スクリプトデータ
３３７  取得元別スクリプト変数データ
３３７ａ  スクリプト変数データ
３３８  エントリポイントデータ
４３１  全体文書構造解析部
４３２  取得元抽出部
４３３  取得元別文書構造解析部
４３４  取得元別スクリプト抽出部
４３５  アクセス制限部
４３６  文書データアクセス変換部
４６１  スクリプト設定部
４６２  スクリプト解釈部
【図１】
2005182342.tif 000003
【図２】
2005182342.tif 000004
【図３】
2005182342.tif 000005
【図４−１】
2005182342.tif 000006
【図４−２】
2005182342.tif 000007
【図４−３】
2005182342.tif 000008
【図４−４】
2005182342.tif 000009
【図４−５】
2005182342.tif 000010
【図４−６】
2005182342.tif 000011
【図４−７】
2005182342.tif 000012
【図４−８】
2005182342.tif 000013
【図５】
2005182342.tif 000014
【図６−１】
2005182342.tif 000015
【図６−２】
2005182342.tif 000016
【図７】
2005182342.tif 000017
【図８】
2005182342.tif 000018
【図９】
2005182342.tif 000019
【図１０】
2005182342.tif 000020
【図１１】
2005182342.tif 000021
【図１２】
2005182342.tif 000022
【図１３−１】
2005182342.tif 000023
【図１３−２】
2005182342.tif 000024
【図１３−３】
2005182342.tif 000025
【図１４】
2005182342.tif 000026
【図１５】
2005182342.tif 000027
【図１６】
2005182342.tif 000028
【図１７】
2005182342.tif 000029
【図１８】
2005182342.tif 000030
【図１９】
2005182342.tif 000031