(57)【要約】【課題】よりセキュアなプロキシ・サーバにおけるアクセス制御の実現。【解決手段】上記の課題は、クライアントのアクセス要求をサーバに中継し、アクセス要求に対するサーバの返答データをクライアントに中継するプロキシ・サーバであって、プロキシ・サーバが中継した返答データのアドレス・ロケーションおよび当該返答データのエンコード方式を記憶する手段と、当該アクセス要求が生成される以前にクライアントが受信した返答データのアドレス・ロケーションと当該返答データのエンコード方式でエンコードされた要求先アドレス・ロケーションを含むアクセス要求をクライアントから受信する手段と、アクセス要求に含まれる返答データのアドレス・ロケーションと記憶する手段に記憶されたアドレス・ロケーションを照合する手段と、照合が成功した場合に、記憶する手段に記憶されたエンコード方式で、アクセス要求に含まれるエンコードされた要求先アドレス・ロケーションの文字列をデコードする手段とを含むプロキシ・サーバによって実現される。【選択図】  図３
2004213288.tif 000002
【特許請求の範囲】
【請求項１】
クライアントのアクセス要求をサーバに中継し、アクセス要求に対するサーバの返答データをクライアントに中継するプロキシ・サーバであって、
前記プロキシ・サーバが中継した返答データのアドレス・ロケーションおよび当該返答データのエンコード方式を記憶する手段と、
当該アクセス要求が生成される以前に前記クライアントが受信した返答データのアドレス・ロケーションと当該返答データのエンコード方式でエンコードされた要求先アドレス・ロケーションを含むアクセス要求をクライアントから受信する手段と、
前記アクセス要求に含まれる前記返答データのアドレス・ロケーションと前記記憶する手段に記憶されたアドレス・ロケーションを照合する手段と、
前記照合が成功した場合に、前記記憶する手段に記憶されたエンコード方式で、前記アクセス要求に含まれるエンコードされた要求先アドレス・ロケーションの文字列をデコードする手段と、
を含むプロキシ・サーバ。
【請求項２】
前記デコードされた要求先アドレス・ロケーションの文字列を用いて、前記アクセス要求のアクセス許可／不許可を判定する手段と、
前記判定する手段が、前記アクセス要求をアクセスが許可されると判定した場合に、当該アクセス要求をサーバに送信する手段と
を更に含む請求項１に記載のプロキシ・サーバ。
【請求項３】
前記判定する手段が、前記デコードされた要求先アドレス・ロケーションと予めプロキシ・サーバに保持されたアクセス許可／不許可の情報を照合する手段と含む、請求項２に記載のプロキシ・サーバ。
【請求項４】
前記アクセス要求が含む、以前に前記クライアントが受信した返答データのアドレス・ロケーションが、前記クライアントが直前にアクセスしたアドレス・ロケーションである、請求項１に記載のプロキシ・サーバ。
【請求項５】
前記プロキシ・サーバが、前記サーバから受信した返答データを解析することによって、返答データのアドレス・ロケーションおよび当該返答データのエンコード方式の情報を入手して、各々を前記記憶手段に記憶する、請求項１に記載のプロキシ・サーバ。
【請求項６】
前記アクセス要求がＨＴＴＰリクエストであり、前記アドレス・ロケーションがＵＲＬであり、前記返答データがウェブ・ページであり、前記返答データのエンコード方式が当該返答データのｃｈａｒｓｅｔの属性値であり、前記アクセス要求に含まれる前記返答データのアドレス・ロケーションがｒｅｆｅｒｅｒの属性値であり、前記サーバがウェブ・サーバであり、前記クライアントと前記プロキシ・サーバがインターネットでネットワーク接続され、前記プロキシ・サーバと前記サーバがイントラネットでネットワーク接続される、請求項１記載のプロキシ・サーバ。
【請求項７】
クライアントのアクセス要求をサーバに中継し、アクセス要求に対するサーバの返答データをクライアントに中継するプロキシ・サーバにおいて、クライアントからサーバへのアクセス要求のアクセス制御を行う方法であって、
前記プロキシ・サーバが中継した返答データのアドレス・ロケーションおよび当該返答データのエンコード方式を記憶するステップと、
当該アクセス要求が生成される以前に前記クライアントが受信した返答データのアドレス・ロケーションと当該返答データのエンコード方式でエンコードされた要求先アドレス・ロケーションを含むアクセス要求をクライアントから受信するステップと、
前記アクセス要求に含まれる前記返答データのアドレス・ロケーションと前記記憶するステップにおいて記憶されたアドレス・ロケーションを照合するステップと、
前記照合が成功した場合に、前記記憶するステップにおいて記憶されたエンコード方式で、前記アクセス要求に含まれるエンコードされた要求先アドレス・ロケーションの文字列をデコードするステップと、
を含むアクセス制御方法。
【請求項８】
前記デコードされた要求先アドレス・ロケーションの文字列を用いて、前記アクセス要求のアクセス許可／不許可を判定するステップと、
前記判定するステップにおいて、前記アクセス要求をアクセスが許可されると判定した場合に、当該アクセス要求をサーバに送信するステップと
を更に含む請求項７に記載のアクセス制御方法。
【請求項９】
前記判定するステップが、前記デコードされた要求先アドレス・ロケーションと予めプロキシ・サーバに保持されたアクセス許可／不許可の情報を照合するステップと含む、請求項８に記載のアクセス制御方法。
【請求項１０】
前記アクセス要求が含む、以前に前記クライアントが受信した返答データのアドレス・ロケーションが、前記クライアントが直前にアクセスしたアドレス・ロケーションである、請求項７に記載のアクセス制御方法。
【請求項１１】
前記プロキシ・サーバが、前記サーバから受信した返答データを解析することによって、返答データのアドレス・ロケーションおよび当該返答データのエンコード方式の情報を入手して記憶する、請求項７に記載のアクセス制御方法。
【請求項１２】
前記アクセス要求がＨＴＴＰリクエストであり、前記アドレス・ロケーションがＵＲＬであり、前記返答データがウェブ・ページであり、前記返答データのエンコード方式が当該返答データのｃｈａｒｓｅｔの属性値であり、前記アクセス要求に含まれる前記返答データのアドレス・ロケーションがｒｅｆｅｒｅｒの属性値であり、前記サーバがウェブ・サーバであり、前記クライアントと前記プロキシ・サーバがインターネットでネットワーク接続され、前記プロキシ・サーバと前記サーバがイントラネットでネットワーク接続される、請求項７記載のアクセス制御方法。
【請求項１３】
クライアントのアクセス要求をサーバに中継し、アクセス要求に対するサーバの返答データをクライアントに中継するプロキシ・サーバによって実行され、クライアントからサーバへのアクセス要求のアクセス制御を行うためアクセス制御プログラムであって、前記プロキシ・サーバに、
前記プロキシ・サーバが中継した返答データのアドレス・ロケーションおよび当該返答データのエンコード方式を記憶するステップと、
当該アクセス要求が生成される以前に前記クライアントが受信した返答データのアドレス・ロケーションと当該返答データのエンコード方式でエンコードされた要求先アドレス・ロケーションを含むアクセス要求をクライアントから受信するステップと、
前記アクセス要求に含まれる前記返答データのアドレス・ロケーションと前記記憶するステップにおいて記憶されたアドレス・ロケーションを照合するステップと、
前記照合が成功した場合に、前記記憶するステップにおいて記憶されたエンコード方式で、前記アクセス要求に含まれるエンコードされた要求先アドレス・ロケーションの文字列をデコードするステップと、
を実行させるアクセス制御プログラム。
【請求項１４】
前記デコードされた要求先アドレス・ロケーションの文字列を用いて、前記アクセス要求のアクセス許可／不許可を判定するステップと、
前記判定するステップにおいて、前記アクセス要求をアクセスが許可されると判定した場合に、当該アクセス要求をサーバに送信するステップと
を更にプロキシ・サーバに実行させる、請求項１３に記載のアクセス制御プログラム。
【請求項１５】
前記判定するステップが、前記デコードされた要求先アドレス・ロケーションと予めプロキシ・サーバに保持されたアクセス許可／不許可の情報を照合するステップと含む、請求項１４に記載のアクセス制御プログラム。
【請求項１６】
前記アクセス要求が含む、以前に前記クライアントが受信した返答データのアドレス・ロケーションが、前記クライアントが直前にアクセスしたアドレス・ロケーションである、請求項１３に記載のアクセス制御プログラム。
【請求項１７】
前記プロキシ・サーバが、前記サーバから受信した返答データを解析することによって、返答データのアドレス・ロケーションおよび当該返答データのエンコード方式の情報を入手して記憶する、請求項１３に記載のアクセス制御プログラム。
【請求項１８】
前記アクセス要求がＨＴＴＰリクエストであり、前記アドレス・ロケーションがＵＲＬであり、前記返答データがウェブ・ページであり、前記返答データのエンコード方式が当該返答データのｃｈａｒｓｅｔの属性値であり、前記アクセス要求に含まれる前記返答データのアドレス・ロケーションがｒｅｆｅｒｅｒの属性値であり、前記サーバがウェブ・サーバであり、前記クライアントと前記プロキシ・サーバがインターネットでネットワーク接続され、前記プロキシ・サーバと前記サーバがイントラネットでネットワーク接続される、請求項１３に記載のアクセス制御プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
一般的には、本発明はネットワーク・セキュリティ技術に関する。より具体的には、本発明はプロキシ・サーバにおけるアクセス制御技術に関する。
【０００２】
【従来の技術】
パーソナル・コンピュータ（ＰＣ）のような情報処理技術およびインターネット、イントラネットなどのネットワーク技術が普及し、ビジネス用途にそれらの技術が使用される機会が増している。その結果、不正アクセスによる顧客情報の漏洩などの危険が増大し、ネットワーク・セキュリティ技術に関心が非常に集まっている。
【０００３】
そのような背景の下で、インターネットのような外部ネットワークから社内ＬＡＮのようなイントラネット内のサーバへの不正アクセスを防止する必要が生じている。また、イントラネットから外部ネットワークへの不適切なアクセスを制限する必要もある。これらの必要のため、通常、外部ネットワークとイントラネットの間にプロキシ・サーバが設置される。
【０００４】
プロキシ・サーバは、外部ネットワーク上のコンピュータにアクセスしようとするイントラネット上のコンピュータに代わってサーバへのアクセス要求を中継する。このようなプロキシ・サーバの機能をフォワード・プロキシという。フォワード・プロキシとして機能する場合、プロキシ・サーバは、イントラネットからのアクセス要求を中継する際に、そのアクセス要求の中継の許可／不許可をチェックし、アクセス制御を行う。
【０００５】
また、プロキシ・サーバはイントラネット内のコンピュータにアクセスしようとする外部ネットワーク上のコンピュータに代わって、アクセス要求をイントラネット内のコンピュータに中継する。このようなプロキシ・サーバの機能をリバース・プロキシという。リバース・プロキシとして機能する場合も、プロキシ・サーバは、外部ネットワークからのアクセス要求を中継する際に、そのアクセス要求の中継の許可／不許可をチェックし、アクセス制御を行う。
【０００６】
現在、様々なプロキシ・サーバによるアクセス制御技術が存在する。プロキシ・サーバによるアクセス制御技術の１つとして、ＵＲＬ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒの略）をベースにしたアクセス制御（以下、ＵＲＬベース・アクセス制御という。）がある。なお、ＵＲＬは、インターネット、イントラネットのようなＴＣＰ／ＩＰネットワーク上のリソースのアドレス・ロケーションであり、所定の規則に従った任意の文字列で表現される。
【０００７】
ＵＲＬベース・アクセス制御を実現するソフトウェア製品として、インターナショナル・ビジネス・マシーンズが提供するＩＢＭ  Ｔｉｖｏｌｉ  Ａｃｃｅｓｓ  Ｍａｎａｇｅｒ（Ｒ）製品が存在する。現在のＩＢＭ  Ｔｉｖｏｌｉ  Ａｃｃｅｓｓ  Ｍａｎａｇｅｒ（Ｒ）製品によるＵＲＬベース・アクセス制御を実現するシステムの一例を以下に簡単に説明する。
【０００８】
現在のＩＢＭ  Ｔｉｖｏｌｉ  Ａｃｃｅｓｓ  Ｍａｎａｇｅｒ（Ｒ）によるＵＲＬベース・アクセス制御を実現するシステムの一例は、プロキシ・サーバ、クライアントおよびウェブ・サーバを含む。プロキシ・サーバはインターネットを介してクライアントとネットワーク接続されている。プロキシ・サーバは、イントラネットを介してウェブ・サーバとネットワーク接続されている。
【０００９】
プロキシ・サーバは、アクセス制御リスト（Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ  Ｌｉｓｔの略。以下、ＡＣＬという。）を備える。ＡＣＬは、図６に例示するような、あるＵＲＬに対するアクセスの許可／不許可を決定するために必要な情報を含むリストである。図６に例示するＡＣＬ１０７には、”ｈｔｔｐ：／／ｗｗｗ．ｉｂｍ．ｃｏｍ／ＣｕｓｔｏｍＡｐｐ？ｃｏｎｆｉｄｅｎｔｉａｌ”および”ｈｔｔｐ：／／ｗｗｗ．ｉｂｍ．ｃｏｍ／ＣｕｓｔｏｍＡｐｐ？一般文書”がアクセスが許されないＵＲＬ（アクセス禁止ＵＲＬ）としてリストされている。
【００１０】
プロキシ・サーバは、クライアントからアクセス要求（周知のＨＴＴＰプロトコルに従うＨＴＴＰリクエストとして実現され得る）を受信する。その後、プロキシ・サーバは、アクセス要求の要求先ＵＲＬの文字列とＡＣＬを解釈して得られたアクセス禁止ＵＲＬの文字列の照合を行い、当該アクセス要求に対してアクセス許可／不許可を判定する。アクセス要求のアクセスが許可された場合は、プロキシ・サーバは、当該アクセス要求をウェブ・サーバに中継（転送）する。中継されたアクセス要求を受信したウェブ・サーバは、当該アクセス要求に対して返答データをプロキシ・サーバに送信する。プロキシ・サーバは、受信した返答データを更にクライアントに中継する。このようにして、クライアントは所望の返答データを受信し、一連の処理（セッション）を終了する。
【００１１】
また、照合の結果、アクセス要求のアクセスが許可されない場合は、プロキシ・サーバは当該アクセス要求をウェブ・サーバに中継せず、クライアントにアクセス禁止のメッセージを返信し、セッションを終了する。
【００１２】
具体的には、例えば、要求先ＵＲＬを”ｈｔｔｐ：／／ｗｗｗ．ｉｂｍ．ｃｏｍ／ＣｕｓｔｏｍＡｐｐ？ｃｏｎｆｉｄｅｎｔｉａｌ”とするアクセス要求がクライアントからネットワークに送出されたとする。この場合は、ＡＣＬに当該ＵＲＬ（”ｈｔｔｐ：／／ｗｗｗ．ｉｂｍ．ｃｏｍ／ＣｕｓｔｏｍＡｐｐ？ｃｏｎｆｉｄｅｎｔｉａｌ”）がアクセス禁止ＵＲＬとしてリストされているので、プロキシ・サーバで照合が行われると、プロキシ・サーバはアクセスが許されないと判定する。アクセス要求はウェブ・サーバに中継されず、クライアントは当該ＵＲＬの指し示すリソースを入手することができない。
【００１３】
また、要求先ＵＲＬを”ｈｔｔｐ：／／ｗｗｗ．ｉｂｍ．ｃｏｍ／ＣｕｓｔｏｍＡｐｐ？ｐｕｂｌｉｃ”とするアクセス要求がクライアントからネットワークに送出された場合を考える。この場合、ＡＣＬに当該ＵＲＬ（”ｈｔｔｐ：／／ｗｗｗ．ｉｂｍ．ｃｏｍ／ＣｕｓｔｏｍＡｐｐ？ｐｕｂｌｉｃ”）がアクセス禁止ＵＲＬとしてリストされていないので、プロキシ・サーバで照合が行われると、プロキシ・サーバはアクセスが許されると判定する。アクセス要求はウェブ・サーバに中継され、クライアントは当該ＵＲＬの指し示すネットワーク上のアドレス・ロケーションに存在するリソース（例えば、ウェブ・ページのデータ）を入手する。
【００１４】
現在のＩＢＭ  Ｔｉｖｏｌｉ  Ａｃｃｅｓｓ  Ｍａｎａｇｅｒ（Ｒ）によるＵＲＬベース・アクセス制御を実現するシステムの一例においては、上記の手法で、クライアントからウェブ・サーバへのアクセス要求は制御される。
【００１５】
ところで、クライアントのＨＴＴＰリクエストによるアクセス要求は、クライアントにおいて、要求先ＵＲＬの文字列に英数字などのいわゆるシングルバイト・コード以外の文字（例えば、ひらがなや漢字の日本語などのようないわゆる「ダブルバイト・コード」）やコンピュータには可読だが人間には可読でない文字（いわゆる「バイナリ・コード」））を含めてＨＴＴＰリクエストを生成することが許されている（少なくとも、明示的には禁止されていない）。
【００１６】
ところが、要求先ＵＲＬの文字列にシングルバイト・コード以外が含められたアクセス要求（ＨＴＴＰリクエスト）を、ネットワークにそのまま送出することは、ＨＴＴＰプロトコルの規約上、一般的に許されていない。よって、クライアントは、シングルバイト・コード以外が含められた要求先ＵＲＬの文字列を適当なエンコード方式に従ってエンコード処理し、シングルバイト・コードのみを含む文字列を要求先ＵＲＬとするアクセス要求をネットワークに送出しなければならない。
【００１７】
具体的には、例えば、クライアントにおいて、ダブルバイト・コードである日本語「一般文書」を含む”ｈｔｔｐ：／／ｗｗｗ．ｉｂｍ．ｃｏｍ／ＣｕｓｔｏｍＡｐｐ？一般文書”を要求先ＵＲＬとするアクセス要求が生成され、エンコード方式にＵＴＦ−８が採用されたとする。この場合、要求先ＵＲＬの文字列は、シングル・コードのみからなる”ｈｔｔｐ：／／ｗｗｗ．ｉｂｍ．ｃｏｍ／ＣｕｓｔｏｍＡｐｐ？％Ｅ４％Ｂ８％８０％Ｅ８％８８％ＡＣ％Ｅ６％９６％８７％Ｅ６％９Ｂ％Ｂ８”という文字列にエンコードされて、ネットワークに送出される。なお、ＵＴＦ−８は、インターネット上で最も広く使用されている、当業者にとって周知のエンコード方式である。
【００１８】
次に、プロキシ・サーバは、エンコードされた要求先ＵＲＬ（”ｈｔｔｐ：／／ｗｗｗ．ｉｂｍ．ｃｏｍ／ＣｕｓｔｏｍＡｐｐ？％Ｅ４％Ｂ８％８０％Ｅ８％８８％ＡＣ％Ｅ６％９６％８７％Ｅ６％９Ｂ％Ｂ８”）を含むアクセス要求を受信して要求先ＵＲＬの文字列をデコードする。その後、デコードされた要求先ＵＲＬの文字列（”ｈｔｔｐ：／／ｗｗｗ．ｉｂｍ．ｃｏｍ／ＣｕｓｔｏｍＡｐｐ？一般文書”）とＡＣＬを使用して得たアクセス禁止ＵＲＬの文字列と照合し、アクセスの許可／不許可を判定する。図６に例示するＡＣＬには、当該ＵＲＬ（”ｈｔｔｐ：／／ｗｗｗ．ｉｂｍ．ｃｏｍ／ＣｕｓｔｏｍＡｐｐ？一般文書”）が、アクセス禁止ＵＲＬとしてリストされているので、プロキシ・サーバはアクセスが許されないと判断し、アクセス要求が中継しない。
【００１９】
しかし、エンコード方式は、ＵＴＦ−８だけでなく、当業者に周知なものだけを挙げても、例えば、Ｓｈｉｆｔ−ＪＩＳ、ＥＵＣ（Ｅｘｔｅｎｄｅｄ  Ｕｎｉｘ  Ｃｏｄｅ）など、様々なものが存在する。そのため、図７を見れば明らかなように、シングルバイト・コード以外が含められたＵＲＬをエンコード処理した結果の文字列は、必ずしも一意ではない。換言すれば、ウェブ・サーバ上のあるリソースを呼び出すためにクライアントからネットワークに送出されるアクセス要求のエンコードされた要求先ＵＲＬの表現は、クライアントが採用したエンコード方式によって異なる。
【００２０】
その結果、従来のＵＲＬベース・アクセス制御を採用するプロキシ・サーバにおけるアクセス許可／不許可の判定で、エンコードされたＵＲＬ文字列を使うことはセキュリティ・ホールを生じる可能性がある。例えば、プロキシ・サーバにおいて、アクセス禁止ＵＲＬを要求先ＵＲＬとするアクセス要求に対してブラウザでＳｈｉｆｔ−ＪＩＳでエンコードを行ったとする。その場合に、プロキシで誤ってＥＵＣでデコードを行ってアクセスの許可／不許可を判定することもあり得る。そのような場合、そのアクセス要求は、アクセスが許されないにもかかわらずプロキシ・サーバでのアクセス制御をすり抜けてしまうことがある。
【００２１】
さらに状況を悪化させているのは、ダブルバイト・コード（日本語等）を含むＨＴＴＰリクエストの要求先ＵＲＬの文字列に対して、複数のエンコード方式の使用を許すウェブ・サーバ構築ソフトウェア製品があるということである。例えば、マイクロソフト社のＭｉｃｒｏｓｏｆｔ  Ｉｎｔｅｒｎｅｔ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｓｅｒｖｅｒ（Ｒ）（インターネット・インフォメーション・サーバ、ＩＩＳ）では、”ｈｔｔｐ：／／ｗｗｗ．ｉｂｍ．ｃｏｍ／ＣｕｓｔｏｍＡｐｐ？一般文書”というＵＲＬに存在するリソースを呼び出す場合は、ＵＲＬ中の「一般文書」の部分を、ＵＴＦ−８エンコード方式で表現したＵＲＬも受容するし、Ｓｈｉｆｔ−ＪＩＳエンコード方式で表現されたＵＲＬも受容する。
【００２２】
以上より、複数のエンコード方式が採用されることによるプロキシ・サーバでのアクセス制御のすり抜けを防ぐために、アクセス要求の要求先ＵＲＬのエンコード方式を判別し、プロキシ・サーバにおいて判別したエンコード方式に従ってデコードを行いアクセス制御を行うことに対する現実の要求があることが理解されるであろう。
【００２３】
また、他の従来技術である特開２０００−３３０８５号公報（特許文献１）は、指定されたＵＲＬに対するアクセスを許可されているのか否かを確認するセキュリティ管理部３３を備える情報送受信システム３０を開示する。しかし、特開２０００−３３０８５号公報には、シングルバイト・コード以外がＵＲＬの文字列に含まれる場合について、なんら言及されていない。
【００２４】
さらに、他の従来技術である特開２０００−２０４４４号公報（特許文献２）は、ＵＲＬに任意の文字列（漢字、ひらがな、カタカナ、記号など）を含むことを可能とする機能拡張装置を開示する。しかし、任意の文字列を含むことを可能としてＵＲＬの文字列の表現力を高めることに終始しており、漢字等が含まれるＵＲＬに対してアクセス制御を行うことについて、なんら言及はない。
【００２５】
【特許文献１】
特開２０００−３３０８５号公報
【特許文献２】
特開２０００−２０４４４号公報
【００２６】
【発明が解決しようとする課題】
本発明の１つの目的は、よりセキュア（安全）な、プロキシ・サーバにおけるアクセス制御を実現することである。
【００２７】
本発明の他の目的は、エンコードされた文字列を要求先のアドレス・ロケーションとして含むアクセス要求に対する、よりセキュアな、プロキシ・サーバにおけるアクセス制御を実現することである。
【００２８】
本発明の他の目的は、よりセキュアな、プロキシ・サーバにおけるＵＲＬベースのアクセス制御を実現することである。
【００２９】
本発明の他の目的は、シングルバイト・コード以外の文字が含まれるＵＲＬを要求先ＵＲＬとするアクセス要求に対する、よりセキュアな、プロキシ・サーバにおけるアクセス制御を実現することである。
【００３０】
【課題を解決するための手段】
上述の目的は、クライアントのアクセス要求をサーバに中継し、アクセス要求に対するサーバの返答データをクライアントに中継するプロキシ・サーバであって、プロキシ・サーバが中継した返答データのアドレス・ロケーションおよび当該返答データのエンコード方式を記憶する手段と、当該アクセス要求が生成される以前にクライアントが受信した返答データのアドレス・ロケーションと当該返答データのエンコード方式でエンコードされた要求先アドレス・ロケーションを含むアクセス要求をクライアントから受信する手段と、アクセス要求に含まれる返答データのアドレス・ロケーションと記憶する手段に記憶されたアドレス・ロケーションを照合する手段と、照合が成功した場合に、記憶する手段に記憶されたエンコード方式で、アクセス要求に含まれるエンコードされた要求先アドレス・ロケーションの文字列をデコードする手段とを含むプロキシ・サーバによって達成される。
【００３１】
前述のプロキシ・サーバには、デコードされた要求先アドレス・ロケーションの文字列を用いて、アクセス要求のアクセス許可／不許可を判定する手段と、判定する手段が、前記アクセス要求をアクセスが許可されると判定した場合に、当該アクセス要求をサーバに送信する手段とを更に含むようにすることが可能である。
【００３２】
また、前述のプロキシ・サーバにおいては、アクセス要求が含む、以前にクライアントが受信した返答データのアドレス・ロケーションが、クライアントが直前にアクセスしたアドレス・ロケーションであるようにすることもできる。
【００３３】
さらに、前述のプロキシ・サーバにおいては、サーバから受信した返答データを解析することによって、返答データのアドレス・ロケーションおよび当該返答データのエンコード方式の情報を入手して、各々を記憶手段に記憶するようにすることも可能である。
【００３４】
前述のプロキシ・サーバにおいては、アクセス要求がＨＴＴＰリクエストであり、アドレス・ロケーションがＵＲＬであり、返答データがウェブ・ページであり、返答データのエンコード方式が当該返答データのｃｈａｒｓｅｔの属性値であり、アクセス要求に含まれる前記返答データのアドレス・ロケーションがｒｅｆｅｒｅｒの属性値であり、サーバがウェブ・サーバであるようにすることができる。好適には、クライアントとプロキシ・サーバがインターネットでネットワーク接続され、プロキシ・サーバとサーバがイントラネットでネットワーク接続される。また、エンコード方式は、ＵＴＦ−８、ＥＵＣ、Ｕｎｉｃｏｄｅ、Ｓｈｉｆｔ−ＪＩＳのいずれかであるようにすることが可能である。
【００３５】
なお、本発明は前述した「プロキシ・サーバ（プロキシ機能を持つコンピュータ・システム）」としての発明の他、「アクセス制御方法」および「アクセス制御プログラム（コンピュータ・プログラム）」としての発明として把握することも可能である。
【００３６】
【発明の実施の形態】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。ただし、本発明は多くの異なる態様で実施することが可能であり、本実施の形態の記載内容に限定して解釈すべきではない。なお、実施の形態の全体を通して同じ要素には同じ番号を付している。
【００３７】
本実施の形態では、主にアクセス制御の方法またはシステムについて説明するが、当業者であれば明らかな通り、本発明はコンピュータで使用可能なプログラムとしても実施できる。したがって、本発明は、ハードウェアとしての実施形態、ソフトウェアとしての実施形態またはソフトウェアとハードウェアとの組合せの実施形態をとることができる。プログラムは、ハードディスク、ＣＤ−ＲＯＭ、光記憶装置または磁気記憶装置などの任意のコンピュータ可読媒体に記録できる。
【００３８】
また、本実施の形態では、プロキシ・サーバがリバース・プロキシとして機能する場合を想定して本発明を説明している。しかし、本発明の適用対象はリバース・プロキシに限定されず、フォワード・プロキシの場合を含め、ＵＲＬを用いたアクセス制御を行うシステムであればどのようなシステムにおいても本発明を適用し得ることに留意されたい。
【００３９】
本実施の形態では、ＵＲＬの文字列を用いてアクセス制御を行っている。しかし、当業者には自明であるが、ネットワーク上のリソースのアドレス・ロケーションを文字列で表現するシステムであれば、どのようなシステムであっても本発明を適用し得ることは勿論である。
【００４０】
［システム概念図］
図１は、本発明のアクセス制御方法を適用するシステムの構成の一例を示した概念図である。本実施の形態のシステムは、インターネット２００およびイントラネット４００にネットワーク接続されたプロキシ・サーバ１００を含む。クライアント３００はインターネット２００にネットワーク接続されている。ウェブ・サーバ５００はイントラネット４００にネットワーク接続されている。
【００４１】
本発明の実施の形態では、プロキシ・サーバ１００は、クライアント３００からウェブ・サーバ５００へのアクセス要求をインターネット２００を介して受信する。好適には、アクセス要求は、当業者に周知のＨＴＴＰリクエストとして実現される。プロキシ・サーバ１００は、受信したアクセス要求がウェブ・サーバ５００へ中継（転送）が許されるものかどうかを判定する。中継が許されると判断した場合、プロキシ・サーバ１００は、当該アクセス要求をウェブ・サーバ５００にイントラネット４００を介して中継する。
【００４２】
また、本発明の実施の形態では、プロキシ・サーバ１００は、中継したアクセス要求に対する返答データをウェブ・サーバ５００からイントラネット４００を介して受信し、受信した返答データをクライアント３００にインターネット２００を介して中継する。
【００４３】
本発明の実施の形態では、クライアント３００は、ウェブ・サーバ５００から所望のデータを入手するために、インターネット２００を介してプロキシ・サーバ１００にアクセス要求を送信する。クライアント３００は、プロキシ・サーバ１００からインターネット２００を介して、所望の返答データを受け取る。クライアント３００は、周知のインターネットに接続可能な端末で当業者は適宜実現可能である。クライアント３００とインターネット２００の接続は、ダイアルアップ接続等によりＩＳＰ（Ｉｎｔｅｒｎｅｔ  Ｓｅｒｖｉｃｅ  Ｐｒｏｖｉｅｒ、図示せず）を介して行うとよい。クライアント３００からＩＳＰへの接続はダイアルアップ接続に限られず、専用線、ＡＤＳＬ（Ａｓｙｍｍｅｔｒｉｃ  Ｄｉｇｉｔａｌ  Ｓｕｂｓｃｒｉｂｅｒ  Ｌｉｎｅ）、ＣＡＴＶ（Ｃａｂｌｅ  Ｔｅｌｅｖｉｓｉｏｎ）等を用いた常時接続により行ってもよい。
【００４４】
本発明の実施の形態では、ウェブ・サーバ５００は、プロキシ・サーバ１００から転送されたクライアント３００のアクセス要求に応じて、適切な返答データをプロキシ・サーバ１００に返す。ウェブ・サーバ５００の構築方法は一般に周知であり、具体的には、マイクロソフト社が提供するマイクロソフト社のＭｉｃｒｏｓｏｆｔ  Ｉｎｔｅｒｎｅｔ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｓｅｒｖｅｒ（Ｒ）（インターネット・インフォメーション・サーバ、ＩＩＳ）やフリーソフトウェアであるＡｐａｃｈｅなどのソフトウェアを使用して当業者は適宜実現可能である。
【００４５】
本発明の実施の形態では、インターネット２００はクライアント３００とプロキシ・サーバ１００を接続する通信経路として機能する。また、イントラネット４００はプロキシ・サーバ１００とウェブ・サーバ５００を接続する通信経路として機能する。当業者に周知の通り、インターネット２００およびイントラネット４００は、ＴＣＰ／ＩＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ／Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）を用いてコンピュータ・システム間を接続する。インターネット２００およびイントラネット４００ではグローバル・アドレスまたはローカル・アドレスで表されるＩＰアドレスによって相互に通信するコンピュータが特定される。
【００４６】
［ハードウェア構成］
本発明の実施の形態において、プロキシ・サーバ１００は、図２のようなハードウェア構成を有するコンピュータ・システムで実現することができる。コンピュータ・システムは、中央処理装置（ＣＰＵ）１とメインメモリ４を含んでいる。ＣＰＵ１とメインメモリ４は、バス２を介して、補助記憶装置としてのハードディスク装置３と接続されている。また、フレキシブルディスク装置２０、ＭＯ装置２８、ＣＲ−ＲＯＭ装置２６、２９などのリムーバブルストレージ（記録メディアを交換可能な外部記憶システム）が関連するフレキシブルディスク・コントローラ１９、ＩＤＥコントローラ２５、ＳＣＳＩコントローラ２７などを介してバス２へ接続されている。
【００４７】
フレキシブルディスク装置２０、ＭＯ装置２８、ＣＲ−ＲＯＭ装置２６、２９などのリムーバブルストレージには、それぞれフレキシブルディスク、ＭＯ、ＣＤ−ＲＯＭなどの記憶媒体が挿入され、このフレキシブルディスク等やハードディスク装置１３、ＲＯＭ１４には、オペレーティング・システムと協働してＣＰＵ等に命令を与え、本発明を実施するためのコンピュータ・プログラムのコードを記録することができる。メインメモリ４にロードされることによってコンピュータプログラムは実行される。コンピュータ・プログラムは圧縮し、また複数に分割して複数の媒体に記録することもできる。
【００４８】
コンピュータ・システムは、さらに、ユーザ・インターフェイス・ハードウェアとして、マウス等のポインティング・デバイス７、キーボード６や視覚データをユーザに提示するためのディスプレイ１２を有することができる。また、パラレルポート１６を介してプリンタ（図示せず）と接続することや、シリアルポート１５を介してモデム（図示せず）を接続することが可能である。コンピュータ・システムは、シリアルポート１５及びモデムを介し、また、通信アダプタ１８（イーサネット（Ｒ）・カードやトークンリング・カード）等を介してネットワークに接続し、他のコンピュータ等と通信を行うことが可能である。
【００４９】
スピーカ２３は、オーディオ・コントローラ２１によってＤ／Ａ変換（デジタル／アナログ変換）された音声信号をアンプ２２を介して受け取り、音声として出力する。また、オーディオ・コントローラ２１は、マイクロフォン２４から受け取った音声情報をＡ／Ｄ変換（アナログ／デジタル変換）し、システム外部の音声情報をシステムに取り込むことを可能にしている。
【００５０】
以上の説明により、本発明の実施の形態におけるプロキシ・サーバ１００は、メインフレーム、ワークステーション、通常のパーソナル・コンピュータ（ＰＣ）、ラップトップＰＣ、ノートブックＰＣ、パームトップＰＣ、ネットワークコンピュータ、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄａｔａ  Ａｓｓｉｓｔａｎｔ）等の情報処理装置、または、これらの組み合わせによって実現されることが容易に理解されるであろう。ただし、これらの構成要素は例示であり、そのすべての構成要素が本発明の必須構成要素となるわけではない。
【００５１】
クライアント３００、ウェブ・サーバ５００も同様のハードウェア構成を有するコンピュータ・システムによって実現可能である。本発明の実施に使用されるプロキシ・サーバ、クライアント、ウェブ・サーバの各ハードウェア構成要素を、複数のマシンを組み合わせ、それらに機能を配分し実施する等の種々の変更は当業者によって容易に想定され得るものであり、それらの変更は、当然に本発明の思想に包含される概念である。
【００５２】
プロキシ・サーバ１００、クライアント３００、ウェブ・サーバ５００には、ハードウェア資源を活用するためのオペレーティングシステムあるいはミドルウェア等のソフトウェアを備えることが好ましい。プロキシ・サーバ１００およびウェブ・サーバ５００は、好適には、インターナショナル・ビジネス・マシーンズが提供するオペレーティング・システムであるＡＩＸ（Ｒ）を備えたサーバ・コンピュータであるｅＳｅｒｖｅｒ  ｐＳｅｒｉｅｓ（Ｒ）で実現される。また、クライアント３００は、好適には、マイクロソフト社が提供するオペレーティング・システムであるＷｉｎｄｏｗｓ２０００（Ｒ）を備えたパーソナル・コンピュータ（ＰＣ）で実現される。
【００５３】
［機能ブロック図］
図３に本実施の形態のシステムの機能ブロック図を示す。システムは、プロキシ・サーバ１００、クライアント３００およびびウェブ・サーバ５００を含む。本実施の形態のシステムにおいては、図３の各機能ブロックは図２に示すハードウェア構成を持つコンピュータ・システムであるプロキシ・サーバ１００、クライアント３００、ウェブ・サーバ５００のハードウェア資源と各ハードウェア資源において実行されるオペレーティング・システム、アクセス制御プログラムなどのソフトウェアが協働することによって実現される。
【００５４】
本実施の形態のシステムにおいては、プロキシ・サーバ１００は、受信手段１０１、アクセス許可／不許可判定手段１０２、送信手段１０３、第１のＵＲＬ比較手段１０４、デコーダ１０５、第２のＵＲＬ比較手段１０６、アクセス制御リスト（ＡＣＬ）１０７、ＵＲＬ記憶手段１０８、エンコード方式記憶手段１０９、受信手段１１０及び送信手段１１１を含む。
【００５５】
受信手段１０１は、クライアント３００からのアクセス要求を受信する。送信手段１０３は、アクセス許可／不許可判定手段１０２がアクセス要求をアクセス許可と判定した場合に、ウェブ・サーバ５００に当該アクセス要求をイントラネット４００を介して転送する。
【００５６】
受信手段１１０は、ウェブ・サーバ５００からの返答データを受信する。受信手段１１０によって受信された返答データは解析され、ウェブ・サーバ５００内の返答データの存在するＵＲＬの文字列および当該返答データのエンコード方式（文字コード）の属性値が各々ＵＲＬ記憶手段１０８およびエンコード方式記憶手段１０９に記憶される。好適には、返答データがＨＴＭＬフォーマットで記述されたウェブ・ページであり、ウェブ・ページの文字コードを表しているウェブ・ページ内の”ｃｈａｒｓｅｔ”という属性の値が、エンコード方式記憶手段１０９に記憶される。送信手段１１１は、受信手段１１０によって受信された返答データをクライアント３００へインターネット２００を介して転送する。
【００５７】
第１のＵＲＬ比較手段１０４は、受信手段１０１によって受信されたアクセス要求に含まれる、クライアント３００のブラウザ３１０よって含められた、クライアント３００が当該アクセス要求が生成される以前にダウンロード（アクセス）した返答データの存在するＵＲＬの文字列とＵＲＬ記憶手段に記憶されたＵＲＬの文字列を照合する。好適には、クライアント３００のブラウザ３１０よってアクセス要求に含められたＵＲＬの文字列は、ＨＴＴＰリクエストにおけるｒｅｆｅｒｅｒという属性の値としてアクセス要求に含められた、クライアント３００が直前にダウンロードした返答データのＵＲＬの文字列である。
【００５８】
第１のＵＲＬ比較手段１０４による照合が一致した場合、第１のＵＲＬ比較手段１０４は、エンコード方式記憶手段１０９に記憶されたエンコード方式で受信手段１０１によって受信されたアクセス要求の要求先ＵＲＬの文字列をデコードすべきことをデコーダ１０５に命令する。デコーダ１０５は、エンコードされたアクセス要求の要求先ＵＲＬの文字列を、後述する方法（ロジック）に従って決定されたエンコード方式でデコードする。
【００５９】
ＡＣＬ１０７は、プロキシ・サーバ１００がアクセス要求の要求先ＵＲＬと照合することによりアクセス許可／不許可を判定するための情報を記述したリストである。図９に例示する本発明の実施形態におけるＡＣＬ１０７は、”ｈｔｔｐ：／／ｗｗｗ．ｉｂｍ．ｃｏｍ／ＣｕｓｔｏｍＡｐｐ？ｃｏｎｆｉｄｅｎｔｉａｌ”、”ｈｔｔｐ：／／ｗｗｗ．ｉｂｍ．ｃｏｍ／ＣｕｓｔｏｍＡｐｐ？一般文書”がアクセス禁止ＵＲＬとしてリストされている。
【００６０】
なお、図６に例示される本発明の実施形態におけるＡＣＬはアクセス禁止ＵＲＬをリストするように構成されているが、逆にアクセスが許されるＵＲＬをリストするように構成してもよいし、メタ・キャラクタ等を用いて表現するように構成してもよい。すなわち、所定の規則に従い解釈を施すことで、プロキシ・サーバがアクセス許可／不許可を判断するための情報を得ることができるものであれば、ＡＣＬはどのような形式であっても本発明の技術的思想に含まれることに留意されたい。
【００６１】
第２のＵＲＬ比較手段１０６は、デコーダから出力された要求先ＵＲＬの文字列と、ＡＣＬを使用して得られたアクセス許可／不許可の情報を照合する。アクセス許可／不許可判定手段１０２は、第２のＵＲＬ比較手段１０６での照合の結果を使用して、アクセス要求に対するアクセス許可／不許可を判定する。
【００６２】
クライアント３００は、ブラウザ３１０を含む。ブラウザ３１０は、送信手段３１１、アクセス要求生成手段３１２を含む。アクセス要求生成手段３１２によって、アクセス要求（ＨＴＴＰリクエスト）が生成される。アクセス要求生成手段３１２は、生成するアクセス要求に、クライアント３００が以前にダウンロード（アクセス）した返答データの存在するＵＲＬの文字列を含めることができる。好適には、直前にクライアント３００がダウンロード（アクセス）したデータ（ウェブ・ページ）、すなわち、ブラウザ３１０のページ表示手段３１３に現在表示されているウェブ・ページ）のＵＲＬの文字列がｒｅｆｅｒｅｒという属性の値として含められる。送信手段３１１は、生成されたアクセス要求をインターネット２００を介してプロキシ・サーバ１００に送信する。
【００６３】
クライアント３００のブラウザ３１０は、ページ表示手段３１３、受信手段３１４を更に含んでいる。受信手段３１４は、プロキシ・サーバ１００からインターネット２００を介して返答データを入手する。ページ表示手段３１３は、受信手段３１５によって受信された返答データを表示装置等を介してユーザに提示する。
【００６４】
なお、ブラウザ３１０は、マイクロソフト社のインターネット・エクスプローラ（Ｒ）、ネットスケープ・コミュニケーションズ社のネットスケープ・ナビゲータ（Ｒ）などの任意のウェブ・ブラウザで実現可能である。
【００６５】
本発明の実施形態においては、ウェブ・サーバ５００は、受信手段５０１、アクセス要求処理手段５０２、送信手段５０３を含む。受信手段５０２はプロキシ・サーバ１００から転送されたクライアント３００のアクセス要求をイントラネット４００を介して受信し、アクセス要求処理手段５０２へ引き渡す。アクセス要求処理手段５０２は、受信したアクセス要求に応答して、データベース等の記憶装置（図示せず）などから適切なデータを取り出し、加工するなどの処理を行って返答データを生成し、送信手段５０３に引き渡す。送信手段５０３は、イントラネット４００を介して返答データをプロキシ・サーバ１００に送信する。
【００６６】
［アクセス制御の処理の流れ］
次に、初期状態のクライアント３００がウェブ・サーバ５００のホームページ（ＵＲＬを”ｈｔｔｐ：／／ｗｗｗ．ｉｂｍ．ｃｏｍ”とする）にアクセス要求を行った後に、当該ホームページ内のＣＧＩ（Ｃｏｍｍｏｎ  Ｇａｔｅｗａｙ  Ｉｎｔｅｒｆａｃｅ）フィールドを使用して、アクセス禁止ＵＲＬである”ｈｔｔｐ：／／ｗｗｗ．ｉｂｍ．ｃｏｍ／ＡｐｐＣｕｓｔｏｍ？一般文書”へアクセスを試みた場合のシステムの動作について、図４および図６乃至図８のフローチャートを参照して説明をする。
【００６７】
まず、クライアント３００がウェブ・サーバ５００のホームページである”ｈｔｔｐ：／／ｗｗｗ．ｉｂｍ．ｃｏｍ”にアクセス要求を行ったときのシステムの動作（以下、第１のセッションという）を図４のフローチャートを使用して説明する。処理は図４のステップ４０００からスタートする。ステップ４０１０では、クライアントが、”ｈｔｔｐ：／／ｗｗｗ．ｉｂｍ．ｃｏｍ”を要求先ＵＲＬとするアクセス要求を生成する。ブラウザ３１０は、（１）ユーザがマウス等を操作してブラウザに表示されたウェブ・ページのハイパーリンクをクリックする、（２）ユーザがキーボード等を操作して直接ＵＲＬをブラウザのアドレス・バーに入力する、あるいは（３）アプレット等のプログラムがブラウザにＵＲＬ遷移イベントを自動的に発生させる、などを契機としてアクセス要求を生成する。
【００６８】
本実施の形態においては、アクセス要求はＨＴＴＰプロトコルに従ってなされる。ＨＴＴＰプロトコルはＩＥＴＦ（Ｉｎｔｅｒｎｅｔ  Ｅｎｇｉｎｅｅｒｉｎｇ  Ｔａｓｋ  Ｆｏｒｃｅ）により管理されるＲＦＣ２６１６にＨＴＴＰ１．１が規定されており、当業者には周知である。もちろんＨＴＴＰ１．０など、他のバージョンのＨＴＴＰプロトコルを使用しても本発明は実現可能である。
【００６９】
生成されたアクセス要求は、クライアント３００からプロキシ・サーバ１００にインターネット２００を介して送信される。第１のセッションにおいては、アクセス要求の要求先ＵＲＬの文字列（”ｈｔｔｐ：／／ｗｗｗ．ｉｂｍ．ｃｏｍ”）はシングルバイト・コードのみからなるので、要求先ＵＲＬの文字列のエンコード処理はされず、生成されたアクセス要求はそのままネットワークに送出され、ＤＮＳサーバ（図示せず）でＩＰアドレス変換がなされ、プロキシ・サーバ１００に到着する。
【００７０】
ステップ４０２０では、プロキシ・サーバ１００が、アクセス要求の要求先ＵＲＬの文字列をＡＣＬを使用して得られたアクセス許可／不許可の情報を照合して、当該アクセス要求のアクセス許可／不許可を判定する。なお、アクセス要求の要求先ＵＲＬの文字列（”ｈｔｔｐ：／／ｗｗｗ．ｉｂｍ．ｃｏｍ”）はシングルバイト・コードのみからなるので、第１のセッションのアクセス許可／不許可の判定においてはデコード処理は不要である（すなわち、デコーダは要求先ＵＲＬの文字列をそのまま出力する）ことに留意されたい。
【００７１】
本発明の実施の形態の第１のセッションでは、図６に示されるように、アクセス制御リストでは”ｈｔｔｐ：／／ｗｗｗ．ｉｂｍ．ｃｏｍ”はアクセス禁止ＵＲＬとされていないので、アクセス要求は、アクセス許可と判定される。アクセス許可と判定されたことに応答して、プロキシ・サーバ１００は当該アクセス要求をイントラネット４００を介してウェブ・サーバ５００へ転送する。
【００７２】
処理はステップ４０３０へ進み、プロキシ・サーバ１００からアクセス要求を受信したウェブ・サーバ５００は、当該アクセス要求を処理して返答データを作成し、プロキシ・サーバ１００へ送信する。処理はステップ４１４０へ進み、返答データをウェブ・サーバ５００から受信したプロキシ・サーバ１００は、その返答データのＵＲＬ（”ｈｔｔｐ：／／ｗｗｗ．ｉｂｍ．ｃｏｍ”）とエンコード方式（すなわち、ｃｈａｒｓｅｔの属性値）を記憶し保持する。本発明の実施の形態では、当該返答データのエンコード方式は、Ｓｈｉｆｔ−ＪＩＳであるとする。
【００７３】
処理はステップ４０５０へ進み、プロキシ・サーバ１００が、返答データをクライアント３００へ送信する。クライアント３００はウェブ・サーバ５００のホームページ（”ｈｔｔｐ：／／ｗｗｗ．ｉｂｍ．ｃｏｍ”）のウェブ・ページのデータを受信し、クライアント３００のブラウザ３１０に当該データの表示を行う。本発明の実施の形態における、返答データのブラウザ表示のイメージを図５に示す。処理はステップ４０６０へ進み、”ｈｔｔｐ：／／ｗｗｗ．ｉｂｍ．ｃｏｍ”を要求先ＵＲＬとするアクセス要求に対する第１のセッションは終了する。
【００７４】
次に、図５に示すブラウザ３１０に表示されたウェブ・ページ内のＣＧＩ（Ｃｏｍｍｏｎ  Ｇａｔｅｗａｙ  Ｉｎｔｅｒｆａｃｅ）フィールドを使用して、アクセス禁止ＵＲＬである”ｈｔｔｐ：／／ｗｗｗ．ｉｂｍ．ｃｏｍ／ＡｐｐＣｕｓｔｏｍ？一般文書”へアクセスを試みた場合のシステムの動作（第２のセッション）について、図６のフローチャートを使用して説明をする。
【００７５】
本発明の実施形態においては、図５に示すブラウザ３１０に表示されたウェブ・ページ内のＣＧＩフィールド５０２０にキーボード等を使用して文字列が入力される。次に、マウスを使用してポインタをあわせてクリックを行うことによって送信ボタン５０３０を押し下げると、”ｈｔｔｐ：／／ｗｗｗ．ｉｂｍ．ｃｏｍ／ＣｕｓｔｏｍＡｐｐ？文字列”（ＵＲＬ中の「文字列」はフィールド５０２０に入力された文字列を表している）を要求先ＵＲＬとし、クライアント３００が以前にダウンロード（アクセス）した返答データの存在するＵＲＬの文字列を含むアクセス要求が生成される。好適には、直前にダウンロードされたウェブ・ページ（すなわち、現在表示されているウェブ・ページ）のＵＲＬをｒｅｆｅｒｅｒという属性の値として含められる。また、生成されたアクセス要求の要求先ＵＲＬは、前述の以前にアクセス（ダウンロード）したデータのエンコード方式でエンコードされ、ネットワークへ送出される。この仕組みは、周知のＣＧＩ技術等によって、当業者は適宜容易に実現することができることに留意されたい。
【００７６】
処理はステップ６０００からスタートし、ステップ６０１０でブラウザ３１０に表示されたウェブ・ページ内の入力フィールド５０２０に文字列「一般文書」と入力され、送信ボタン５０３０が押し下げられる。すると、要求先ＵＲＬを”ｈｔｔｐ：／／ｗｗｗ．ｉｂｍ．ｃｏｍ／ＣｕｓｔｏｍＡｐｐ？一般文書”とし、ｒｅｆｅｒｅｒを”ｈｔｔｐ”／／ｗｗｗ．ｉｂｍ．ｃｏｍ”とするアクセス要求が生成する。
【００７７】
さらにステップ６０１０では、生成したアクセス要求の要求先ＵＲＬの文字列がエンコードされ、エンコードされたアクセス要求がクライアント３００からインターネット２００を介してプロキシ・サーバ１００に送信される。エンコードは、アクセス要求にそのＵＲＬが含められた、以前にダウンロードされたウェブ・ページのエンコード方式、すなわち、”ｈｔｔｐ：／／ｗｗｗ．ｉｂｍ．ｃｏｍ”のエンコード方式（ｃｈａｒｓｅｔ）であるＳｈｉｆｔ−ＪＩＳで行われる。
【００７８】
処理はステップ６０２０に進み、プロキシ・サーバ１００は、受信したアクセス要求のアクセス許可／不許可の判定を、図７および図８のフローチャートに従って行う。図７および図８のフローチャートは、後に詳述する。その結果、アクセス要求は、アクセス不許可と判定されるので、アクセス要求はウェブ・サーバ５００には中継されず、その代わりにプロキシ・サーバ１００からクライアント３００にアクセス不許可のメッセージが送信される。
【００７９】
処理はステップ６０３０へ進み、クライアント３００を操作するユーザにアクセス不許可の情報を伝えるために、クライアント３００はブラウザ３１０に受け取ったアクセス不許可のメッセージを表示する。処理はステップ６０４０へ進み、”ｈｔｔｐ：／／ｗｗｗ．ｉｂｍ．ｃｏｍ／ＣｕｓｔｏｍＡｐｐ？一般文書”を要求先ＵＲＬとするアクセス要求に対する第２のセッションは終了する。
【００８０】
次に、図６に示す第２のセッションのステップ６０２０でのプロキシ・サーバ１００のアクセス許可／不許可の判定処理を図７および図８のフローチャートを使用して詳細に説明をする。
【００８１】
処理はステップ７０００からスタートし、ステップ７０１０でプロキシ・サーバ１００はクライアント３００からのアクセス要求を受信する。受信されたアクセス要求の要求先ＵＲＬは、エンコードされているのでデコード処理がなされる。ステップ７０２０において、要求先ＵＲＬがＵＴＦ−８でデコードできるかどうかが判定される。現在、インターネット上を流れるアクセス要求はほとんどがＵＴＦ−８でエンコードされており、最初にＵＴＦ−８でデコード処理を試みる方が処理効率が向上することが本発明者によって発見されている。
【００８２】
ステップ７０２０で要求先ＵＲＬがＵＴＦ−８でデコードできると判定された場合、処理はＹｅｓの矢印を通じてステップ７０３０へ進み、ＵＴＦ−８でデコード処理がされた後に、処理は更にステップ７１００へ進む。しかし、本発明の実施の形態では、要求先ＵＲＬはＳｈｉｆｔ−ＪＩＳでデコードされているので、ステップ７０２０での判定は失敗し、処理はＮｏの矢印を通じてステップ７０４０へ進む。
【００８３】
ステップ７０４０では、エンコード方式記憶手段１０９にエンコード方式（ｃｈａｒｓｅｔ）が記憶されているかどうかが判定される。本発明の実施の形態では、第１のセッションでエンコード方式記憶手段１０９にＳｈｉｆｔ−ＪＩＳという値が記憶されているので、処理はＹｅｓの矢印を通じてステップ７０５０へ進む。ステップ７０５０では、アクセス要求内のｒｅｆｅｒｅｒが、ＵＲＬ記憶手段１０８に記憶されたＵＲＬと一致するかどうかが判定される。
【００８４】
前述したようにＵＲＬ記憶手段１０８には、第１のセッションで”ｈｔｔｐ：／／ｗｗｗ．ｉｂｍ．ｃｏｍ”が記憶されており、また、アクセス要求内のｒｅｆｅｒｅｒにも、ステップ６０１０で”ｈｔｔｐ”／／ｗｗｗ．ｉｂｍ．ｃｏｍ”が格納されているので、一致すると判定され、処理はＹｅｓの矢印を通じてステップ７０６０へ進む。ステップ７０６０では、エンコード方式記憶手段１０９にエンコード方式であるＳｈｉｆｔ−ＪＩＳでデコードが行われ、要求先ＵＲＬの文字列は正しく”ｈｔｔｐ：／／ｗｗｗ．ｉｂｍ．ｃｏｍ／ＣｕｓｔｏｍＡｐｐ？一般文書”と戻される。デコードの後、処理は更にステップ７１００へ進む。
【００８５】
なお、仮に、ステップ７０４０または７０５０で判定に失敗した場合は、処理はＮｏの矢印を通じてステップ７０７０へ進み、アクセス要求によってアクセスしようとされているウェブ・サーバに対するあらかじめ設定されたデフォルトの文字コードがあるかどうかが判定される。ステップ７０７０でデフォルトの文字コードがあると判定された場合、処理はステップ７０８０へ進み、当該デフォルトの文字コードで要求先ＵＲＬの文字列がデコードされ、処理は更にステップ７１００へ進む。
【００８６】
また、本実施の形態においては、ステップ７０７０でデフォルトの文字コードがないと判定された場合は、処理はステップ７０９０へ進み、最後の選択肢として、プロキシ・サーバ１００で採用されている文字コードで要求先ＵＲＬの文字列がデコードされる。ステップ７０９０のデコードが行われた後、処理は更にステップ７１００へ進む。
【００８７】
説明を図８へ進め、ステップ７１００では、ステップ７０３０、７０６０、７０８０または７０９０でデコードされたアクセス要求の要求先ＵＲＬの文字列と、ＡＣＬ１０７を解釈して得られたアクセス禁止ＵＲＬの文字列が照合される。本発明の実施の形態においては、デコードされたアクセス要求の要求先ＵＲＬの文字列は、”ｈｔｔｐ”／／ｗｗｗ．ｉｂｍ．ｃｏｍ／ＣｕｓｔｏｍＡｐｐ？一般文書”である。また、図９に例示するＡＣＬ１０７には、”ｈｔｔｐ”／／ｗｗｗ．ｉｂｍ．ｃｏｍ／ＣｕｓｔｏｍＡｐｐ？一般文書”がアクセス禁止ＵＲＬとしてリストされているので、ステップ７１００における照合は一致することとなる。
【００８８】
処理はステップ７１１０へ進み、アクセス要求のアクセス許可／不許可がステップ７１００の照合結果を元に判定される。本発明の実施の形態では、照合が一致してアクセス不許可と判断されるので、処理はＮｏの矢印を通じてステップ７１２０へ進み、プロキシ・サーバ１００からクライアント３００に対してアクセス不許可のメッセージが返され、処理がステップ７１４０で終了する。
【００８９】
なお、ステップ７１００で照合が失敗し、ステップ７１１０でアクセス要求に対してアクセス許可と判定された場合には、処理はＹｅｓの矢印を通じてステップ７１３０へ進む。ステップ７１３０では、プロキシ・サーバ１００はアクセス要求をウェブ・サーバ５００へ転送し、ステップ７１４０で処理は終了する。
【００９０】
上記の本発明の好適な実施例は、説明を目的として記述されたものあって、すべての実施態様を記述するものではなく、実施例に開示された形式に発明を限定する意図ではない。上記の開示によれば、多くの変更例とバリエーションが実現可能である。本発明の範囲は発明の詳細な説明の記載により制限されるのではなく、特許請求の範囲により定まるものであることに留意されたい。上記の仕様、例、データにより本発明の一態様の製造および使用が完全に説明される。本発明の多くの実施例が本発明の精神と範囲を離れることなく実現される。
【００９１】
【効果】
以上から、本発明によれば、クライアントでエンコードされたアクセス要求の要求先ＵＲＬの文字列がプロキシ・サーバでより高い精度で正しくデコードされることが理解される。本発明によれば、よりセキュア（安全）なＵＲＬベース・アクセス制御が可能となるという効果を得ることができる。
【図面の簡単な説明】
【図１】本発明のＵＲＬベース・アクセス制御方法を適用するシステム構成の一例を示した概念図である。
【図２】本発明の実施の形態におけるプロキシ・サーバ、クライアント、ウェブ・サーバのハードウェア構成の一例を示した図である。
【図３】本発明の実施の形態のシステムの機能ブロック図である。
【図４】本発明の実施の形態のシステムの第１のセッションでの動作を示したフローチャートである。
【図５】本発明の実施の形態におけるウェブ・サーバのホームページのブラウザ表示のイメージである。
【図６】本発明の実施の形態のシステムの第２のセッションでの動作を示したフローチャートである。
【図７】本発明の実施の形態のシステムのプロキシ・サーバでのアクセス制御の手順（前半部分）を示したフローチャートである。
【図８】本発明の実施の形態のシステムのプロキシ・サーバでのアクセス制御の手順（後半部分）を示したフローチャートである。
【図９】本発明の実施の形態のシステムのプロキシ・サーバが備えるアクセス制御リストのイメージである。
【図１０】日本語を含むＵＲＬのエンコード前後の文字列を示した対応図である。
【図１】
2004213288.tif 000003
【図２】
2004213288.tif 000004
【図３】
2004213288.tif 000005
【図４】
2004213288.tif 000006
【図５】
2004213288.tif 000007
【図６】
2004213288.tif 000008
【図７】
2004213288.tif 000009
【図８】
2004213288.tif 000010
【図９】
2004213288.tif 000011
【図１０】
2004213288.tif 000012