JP5347429B2 - ユニフォームリソースロケータ書換方法及び装置 - Google Patents

ユニフォームリソースロケータ書換方法及び装置 Download PDF

Info

Publication number
JP5347429B2
JP5347429B2 JP2008275435A JP2008275435A JP5347429B2 JP 5347429 B2 JP5347429 B2 JP 5347429B2 JP 2008275435 A JP2008275435 A JP 2008275435A JP 2008275435 A JP2008275435 A JP 2008275435A JP 5347429 B2 JP5347429 B2 JP 5347429B2
Authority
JP
Japan
Prior art keywords
resource locator
information
uniform resource
request
application server
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2008275435A
Other languages
English (en)
Other versions
JP2010102625A (ja
Inventor
憲二 大木
暁生 下野
昭彦 松尾
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2008275435A priority Critical patent/JP5347429B2/ja
Publication of JP2010102625A publication Critical patent/JP2010102625A/ja
Application granted granted Critical
Publication of JP5347429B2 publication Critical patent/JP5347429B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Transfer Between Computers (AREA)

Description

本発明は、アプリケーションサーバ装置(アプリケーションサーバ)から取得した情報に含まれるユニフォームリソースロケータ(URL)情報を書き換える方法及び装置に関する。
クライアント端末からのリクエストに対するWebアプリケーションサーバ装置(Webアプリケーションサーバ)のレスポンス画面には、他のWebアプリケーションサーバへのサービス要求が必要となる連携スクリプトが含まれる場合がある。例えば、店舗検索サービスにおいて、Webブラウザが第1のアプリケーションサーバから検索結果画面を受信し、その画面に含まれる連携スクリプトが実行され、地図情報サービスを提供する第2のアプリケーションサーバへのサービス要求が行われるような場合である。
また、図17に示すように、クライアント端末11におけるアプリケーションサーバ21のフォーム入力処理において、アプリケーションサーバ22のデータを使用したい場合もある。この場合、フォーム入力画面に含まれる連携スクリプト23が実行され、アプリケーションサーバ22のデータがフォームに自動的に入力される。
このような場合、2つのアプリケーションサーバのURLドメインが異なると、Webブラウザのsame-origin policyにより、別のアプリケーションサーバへのサービス要求が制限されてしまう。same-origin policyとは、ユーザが閲覧しようとしているWebサイトと同じサイトから送信される情報は信用できる、という考え方である。この考え方によってアクセス制限を行うことで、サイトAを見ようとしたらサイトBのスクリプトが実行された、ということが原則的に起こらないように制御することができる。
図17の例では、アプリケーションサーバ21及び22のページのURLは、それぞれ“http://app1.com/app1.html”及び“http://app2.com/app2.html”である。この場合、アプリケーションサーバのドメインが異なるため、Webブラウザからアプリケーションサーバ22にリクエストを発行することができない。このように、same-origin policyはアプリケーションサーバ間の連携処理に必要以上の制限を与えるため、この制限を回避したい場合がある。
この問題を解決するために、図18に示すように、クライアント端末11とアプリケーションサーバ21及び22の間に中継サーバ装置(中継サーバ)31を設けて、中継サーバ31を経由したリクエストをクライアント端末11に指定させる方法が考えられる。
この方法では、ユーザがアプリケーションサーバ21にアクセスする場合、本来のURLの代わりに、例えば、“http://company.com?path=app1.com/app1.html”というURLをアドレスバーに入力する。また、アプリケーションサーバ22にアクセスする場合、本来のURLの代わりに、例えば、“http://company.com?path=app2.com/app2.html”というURLをアドレスバーに入力する。
この方法を用いると、Webブラウザからはあたかも中継サーバ31のみにアクセスしているように見えるので、same-origin policyを満足することができる。
中継サーバがアプリケーションサーバから受信したHyperText Markup Language (HTML)ファイルに含まれるURLを中継サーバのURLに書き換える方法も知られている(例えば、特許文献1を参照)。
特開2006−018795号公報
しかしながら、上述した従来のアプリケーションサーバ連携処理には、次のような問題がある。
図18に示した方法では、クライアント端末11のユーザは、本来のアプリケーションサーバ21及び22ではなく、中継サーバ31を経由してアプリケーションサーバ21及び22にアクセスするためのURLを指定する必要がある。したがって、ユーザはリクエストの度に中継サーバを意識しながらURLを指定する必要があり、実用的ではない。
本発明の課題は、ユーザに中継サーバを意識させることなく、Webブラウザのsame-origin policyによる制限を回避するようなアプリケーションサーバ連携処理を実現することである。
サーバ装置によるユニフォームリソースロケータ書換方法は、リクエスト受信ステップ、記録ステップ、リクエスト送信ステップ、レスポンス受信ステップ、書換ステップ、及びレスポンス送信ステップを備える。
リクエスト受信ステップは、クライアント端末から第1のアプリケーションサーバ装置に対するリクエストを受信する。記録ステップは、そのリクエストにより指定される、第1のアプリケーションサーバ装置のユニフォームリソースロケータ情報内の第1のドメイン情報を記録する。リクエスト送信ステップは、第1のアプリケーションサーバ装置にリクエストを送信する。
レスポンス受信ステップは、第1のアプリケーションサーバ装置からリクエストに対するレスポンスを受信する。書換ステップは、そのレスポンスに含まれる、第2のアプリケーションサーバ装置のユニフォームリソースロケータ情報内の第2のドメイン情報を第1のドメイン情報に変更することで、第2のアプリケーションサーバ装置のユニフォームリソースロケータ情報をダミーのユニフォームリソースロケータ情報に書き換える。レスポンス送信ステップは、ダミーのユニフォームリソースロケータ情報を含むレスポンスをクライアント端末に送信する。
このようなユニフォームリソースロケータ書換方法によれば、第1のアプリケーションサーバ装置からのレスポンスに含まれる第2のアプリケーションサーバ装置のドメイン情報が第1のアプリケーションサーバ装置のドメイン情報に変更される。したがって、レスポンスを受信したクライアント端末は、書き換えられたユニフォームリソースロケータ情報に基づきWebブラウザのsame-origin policyを満足しつつ、第2のアプリケーションサーバ装置に対するリクエストを発行することが可能になる。
ユニフォームリソースロケータ書換方法は、さらに下記のリクエスト受信ステップ、復元ステップ、及び復元後リクエスト送信ステップを備えることもできる。
リクエスト受信ステップは、クライアント端末からダミーのユニフォームリソースロケータ情報を指定するリクエストを受信する。復元ステップは、ダミーのユニフォームリソースロケータ情報から第2のアプリケーションサーバ装置のユニフォームリソースロケータ情報を復元する。復元後リクエスト送信ステップは、復元されたユニフォームリソースロケータ情報を指定するリクエストを第2のアプリケーションサーバ装置に送信する。
ユーザは中継サーバを意識した特別なURLを指定する必要がなく、クライアント端末からはダミーのURLしか見えないため、Webブラウザのsame-origin policyによる制限を回避することができる。
以下、図面を参照しながら、最良の実施形態を詳細に説明する。
図1は、実施形態のアプリケーションサーバ間連携処理の例を示している。この例では、クライアント端末101とアプリケーションサーバ111及び112の間に設けられた既存のプロキシサーバ装置(プロキシサーバ)102を用いて、URLの書き換えを行う。既存のプロキシサーバを用いることで実用性が向上する。
クライアント端末101上のWebブラウザからアプリケーションサーバ111に対するリクエストが送信されると、プロキシサーバ102は、そのリクエストをアプリケーションサーバ111に転送する。そして、リクエストに対するレスポンスがアプリケーションサーバ111からプロキシサーバ102に送信される。プロキシサーバ102は、レスポンスに含まれるHTMLファイルや連携スクリプト113内のURLを書き換えて、クライアント端末101に転送する。
連携スクリプト113には、例えば、アプリケーションサーバ112のページを取得する以下のような処理が記述されている。

var req = new XMLHttpRequest();
req.open("GET", "http://app2.com/app2.html", false);
req.send(null);

この場合、プロキシサーバ102は、連携スクリプト113のreq.open("GET", "http://app2.com/app2.html", false);をreq.open("GET", "http://app1.com?path=app2.com/app2.html", false);に書き換えて、クライアント端末101に転送する。
その後、Webブラウザから連携スクリプト113に記述された、GET http://app1.com?path=app2.com/app2.htmlというリクエストが送信される。このとき、プロキシサーバ102は、GET http://app1.com?path=app2.com/app2.htmlからhttp://app2.com/app2.htmlを復元し、復元されたURLを指定するGET http://app2.com/app2.htmlをアプリケーションサーバ112に転送する。
このようなURL書換方法によれば、プロキシサーバ102からのリクエストは連携先アプリケーションサーバ112に対して送信されているのにもかかわらず、Webブラウザからはあたかも連携要求元アプリケーションサーバ111へリクエストを送信しているように見える。これにより、Webブラウザは必要に応じてsame-origin policyによる制限を回避し、連携スクリプト113から連携先アプリケーションサーバ112のデータを利用できるようになる。
図2は、図1のプロキシサーバ102の構成例を示している。このプロキシサーバ102は、リクエスト受付部221、URL復元部222、安全サイト判定部223、安全URLデータベース(DB)224、安全URL登録部225、Webクライアント部226、URL履歴DB227、レスポンス返却部228、URL記録部229、及びURL書換部230を備える。
図3は、初回アクセス時のプロキシサーバ102による連携処理の例を示している。初回アクセス時の手順は以下の通りである。
(1)クライアント端末101のユーザは、図4に示すように、Webブラウザ211にプロキシサーバ102を使用する旨を設定し、図5に示すように、アプリケーションサーバ111のWebページ231に対するリクエストを送信する。これにより、Webブラウザ211は、GET http://app1.com/a.htmlをプロキシサーバ102に送信する。プロキシサーバ102のリクエスト受付部221は、リクエストを受信し、URL復元部222に転送する。
また、リクエスト受付部221は、受信したリクエストをメモリ等の記憶部に記録しておく。リクエストを記録する代わりに、リクエストにより指定される、アプリケーションサーバ111のURLを記録してもよく、そのURL中のドメイン情報を記録してもよい。記録された情報は、以降の処理でURL書換部230により参照される。
(2)URL復元部222は、リクエストにより指定されたURLをチェックし、リクエストをWebクライアント部226に転送する。
(3)Webクライアント部226は、リクエストをアプリケーションサーバ111に送信し、リソースを含むレスポンスを受信してURL書換部230に転送する。この例では、Webページ231のHTMLファイルと連携スクリプト113が、リソースとしてレスポンスに含まれる。
(4)URL書換部230は、レスポンスに含まれるURLを抽出し、そのドメイン情報をリソースが属するアプリケーションサーバ111のドメイン情報に変更することで、抽出したURLをダミーのURLに書き換える。
このとき、連携要求元アプリケーションサーバ111以外のサーバへのリクエスト送信処理を記述したソースコード中のURLと、HTMLファイル内のiframeのsrc属性に記述されている他のドメインのURLが書き換え対象として抽出される。そして、そのURLのドメイン情報が、上記(1)で記録されたアプリケーションサーバ111のドメイン情報に変更され、変更されたドメイン情報に続いて、元のドメイン情報以降のアドレスがクエリとして付加される。
上述した例では、連携スクリプト113に記述された、アプリケーションサーバ112のWebページ232のURLとしてhttp://app2.com/app2.htmlが抽出され、http://app1.com?path=app2.com/app2.htmlに書き換えられる。“?path=app2.com/app2.html”はクエリに対応する。
URL書換部230は、レスポンスから抽出されたURLと、ダミーのURLを含むレスポンスとをURL記録部229に転送する。
(5)URL記録部229は、アプリケーションサーバ111のドメイン情報であるapp1.comと、レスポンスから抽出されたURLのドメイン情報の組を、URL履歴DB227に記録する。そして、ダミーのURLを含むレスポンスをレスポンス返却部228に転送する。上述した例では、app1.comとapp2.comの組がURL履歴DB227に記録される。
(6)レスポンス返却部228は、レスポンスをWebブラウザ211に送信する。
(7)Webブラウザ211は、レスポンスに含まれる書き換え後の連携スクリプトを実行する。
図6は、連携スクリプト実行時のプロキシサーバ102による連携処理の例を示している。連携スクリプト実行時の手順は以下の通りである。
(1)Webブラウザ211は、書き換え後の連携スクリプトに記述された、アプリケーションサーバ112のWebページ232に対するリクエストの送信処理を行う。
(2)Webブラウザ211は、Webページ232に対するリクエストとしてGET http://app1.com?path=app2.com/app2.htmlをプロキシサーバ102に送信する。プロキシサーバ102のリクエスト受付部221は、リクエストを受信し、URL復元部222に転送する。
(3)URL復元部222は、リクエストにより指定されたURLをチェックし、ダミーのURLからWebページ232のURLを復元する。そして、リクエストと復元されたURLとを安全サイト判定部223に転送する。
(4)安全サイト判定部223は、復元されたURLに対してリクエストを送信してもよいかどうかを判定する。まず、リクエストにより指定されたURLのドメイン情報と復元されたURLのドメイン情報の組が、URL履歴DB227に記録されているか否かをチェックする。
それらのドメイン情報の組が記録されていれば、さらに、安全URLDB224を参照して、復元されたURLが安全であるか否かを判定する。プロキシサーバ102のオペレータ201は、Webページ231のアプリケーション作成者等により信頼できると判断された1つ以上のサイトのURLを、あらかじめ安全URL登録部225を介して安全URLDB224に登録しておく。安全サイト判定部223は、復元されたURLが安全URLDB224に登録されているいずれかのURLと一致すれば、そのURLを安全と判定し、復元されたURLを指定するリクエストをWebクライアント部226に転送する。
(5)Webクライアント部226は、リクエストをアプリケーションサーバ112に送信し、レスポンスを受信してURL書換部230に転送する。この例では、Webページ232のHTMLファイルがレスポンスに含まれる。
(6)URL書換部230は、レスポンスに含まれるURLを抽出し、初回アクセス時と同様に、抽出したURLをダミーのURLに書き換える。そして、レスポンスから抽出されたURLと、ダミーのURLを含むレスポンスとをURL記録部229に転送する。
(7)URL記録部229は、アプリケーションサーバ111のドメイン情報であるapp1.comと、レスポンスから抽出されたURLのドメイン情報の対応関係を、URL履歴DB227に記録する。そして、ダミーのURLを含むレスポンスをレスポンス返却部228に転送する。
(8)レスポンス返却部228は、レスポンスをWebブラウザ211に送信する。
(9)Webブラウザ211は、レスポンスに含まれるHTMLファイルのデータを用いて、連携スクリプト113に記述されたデータ処理を行う。
図7は、図2のプロキシサーバ102による連携処理のフローチャートである。まず、リクエスト受付部221は、リクエストを受信し、そのリクエストの情報を記録する(ステップ701)。次に、URL復元部222は、リクエストからURLを抽出して(ステップ702)、そのURLに所定の文字列が含まれているか否かをチェックする(ステップ703)。上述した例では、http://app1.com?path=app2.com/app2.htmlに含まれる“?path=”が所定の文字列に対応する。
URLに所定の文字列が含まれていなければ、URL復元部222は、リクエストをWebクライアント部226に転送する。そして、Webクライアント部226は、リクエストをアプリケーションサーバ111に送信し(ステップ709)、レスポンスを受信する(ステップ710)。
次に、URL書換部230は、レスポンスからURLを抽出し(ステップ711)、ステップ701で記録された情報を用いてダミーのURLに書き換える(ステップ712)。URL記録部229は、アプリケーションサーバ111のドメイン情報と、レスポンスから抽出されたURLのドメイン情報の組を、URL履歴DB227に記録する。そして、レスポンス返却部228は、レスポンスをWebブラウザ211に送信する。
ステップ703においてURLに所定の文字列が含まれていれば、URL復元部222
は、そのURLはダミーのURLであると判断する。そして、ダミーのURLからWebページ232のURLを復元し、リクエストと復元されたURLとを安全サイト判定部223に転送する(ステップ704)。
次に、安全サイト判定部223は、URL履歴DB227を参照して(ステップ705)、リクエストにより指定されたURLのドメイン情報と復元されたURLのドメイン情報の組が登録されているか否かをチェックする(ステップ706)。
それらのドメイン情報の組が登録されていれば、次に、安全URLDB224を参照して(ステップ707)、復元されたURLが安全であるか否かを判定する(ステップ708)。そして、復元されたURLが安全であれば、復元されたURLを指定するリクエストをWebクライアント部226に転送する。その後、ステップ709以降の処理が行われる。
ステップ706においてドメイン情報の組が登録されていない場合、又はステップ708において復元されたURLが安全でない場合は、安全サイト判定部223はそのまま処理を終了する。したがって、復元されたURLを指定するリクエストは送信されない。
このような連携処理によれば、復元されたURLがURL履歴に残っていなければリクエストは送信されないので、偽造リクエストによる不正アクセスが防止される。また、アプリケーション作成者等により信頼できると判断された、特定のURLに対してのみsame-origin policyによる制限が回避されるので、信頼できないサイトへのアクセスが防止される。
なお、安全URLDB224には、信頼できるサイトのURLの代わりに、同一のアプリケーション作成者により作成されたURLのリストを登録しておいてもよい。この場合、安全サイト判定部223は、復元されたURLとWebページ231のURLが同一のリストに記録されていれば、復元されたURLを安全と判定する。
図2の構成では、書き換え後のダミーのURLに元のドメイン情報が含まれているが、元のドメイン情報を含まないURLに書き換えることも可能である。図8は、このようなプロキシサーバ102の構成例を示している。このプロキシサーバ102は、図2の構成にURL変換DB801を追加した構成を有する。URL変換DB801には、図9に示すように、識別子(ID)、書き換え前のドメイン情報、及び書き換え後のドメイン情報の組が登録される。
図8のプロキシサーバ102による連携処理は、基本的に図7と同様である。ただし、URL書換処理及びURL復元処理は次のように変更される。
図10は、図8のプロキシサーバ102によるURL書換処理のフローチャートである。URL書換部230は、Webクライアント部226からレスポンスを受け取ると(ステップ1001)、レスポンスからURLを抽出する(ステップ1002)。このとき、例えば、サーバへのリクエスト送信処理を記述したソースコード中のURLと、HTMLファイル内のiframeのsrc属性に記述されているURLが抽出される。
次に、抽出されたURLのドメイン情報が、記録されている連携要求元アプリケーションサーバ111のドメイン情報と一致するか否かをチェックし(ステップ1003)、それらのドメイン情報が一致すれば、レスポンスをURL記録部229に転送する。
一方、2つのドメイン情報が一致しなければ、ユニークなIDを発行し(ステップ1004)、抽出されたURLをダミーのURLに書き換える(ステップ1005)。この場合、抽出されたURLのドメイン情報がアプリケーションサーバ111のドメイン情報に変更され、変更されたURLに続いてクエリが付加される。例えば、このクエリのキーには_id_が設定され、そのキーの値には発行されたIDが設定される。
上述した例では、抽出されたURLであるhttp://app2.com/app2.htmlがhttp://app1.com/app2.html?_id_=id0001に書き換えられる。“?_id_=id0001”はクエリに対応し、“id0001”は発行されたIDに対応する。
次に、URL書換部230は、書き換え前及び書き換え後のドメイン情報を発行されたIDに対応付けてURL変換DB801に登録し(ステップ1006)、抽出されたURLと、ダミーのURLを含むレスポンスとをURL記録部229に転送する。
図11は、図8のプロキシサーバ102によるURL復元処理のフローチャートである。URL復元部222は、リクエスト受付部221からリクエストを受け取ると(ステップ1101)、リクエストにより指定されるURLのクエリに_id_が含まれているか否かをチェックする(ステップ1102)。_id_が含まれていなければ、リクエストを安全サイト判定部223に転送する。
一方、URLのクエリに_id_が含まれていれば、URL復元部222は、そのURLはダミーのURLであると判断する。そして、URL変換DB801を参照して、_id_の値に対応する書き換え前及び書き換え後のドメイン情報を取得する(ステップ1103)。
次に、ダミーのURL中の書き換え後のドメイン情報を書き換え前のドメイン情報に変更し、クエリを削除して、書き換え前のURLを復元する(ステップ1104)。上述した例では、ダミーのURLであるhttp://app1.com/app2.html?_id_=id0001からhttp://app2.com/app2.htmlが復元される。そして、リクエストと復元されたURLとを安全サイト判定部223に転送する。
ところで、アプリケーションサーバ111とアプリケーションサーバ112の連携処理が行われた後、さらにアプリケーションサーバ112と他のアプリケーションサーバの連携処理が行われる場合も考えられる。図12は、このような場合のプロキシサーバ102の構成例を示している。このプロキシサーバ102は、図8の構成にID管理DB1201を追加した構成を有する。
アプリケーションサーバ112からのレスポンスには、Webページ232のHTMLファイルとともに連携スクリプト1213が含まれ、連携スクリプト1213には、アプリケーションサーバ1211のWebページ1212のURLが含まれている。したがって、プロキシサーバ102が連携スクリプト1213を書き換えてWebブラウザ211に送信し、Webブラウザ211が書き換え後の連携スクリプトを実行すると、Webページ1212に対するリクエストがプロキシサーバ102に送信される。
ID管理DB1201には、図13に示すように、ID、ベースドメイン情報、インターネットプロトコル(IP)アドレス、及び発行日時の組が登録される。ベースドメイン情報は、連携要求元アプリケーションサーバのドメイン情報を表し、IPアドレスは、リクエスト元クライアント端末のIPアドレスを表し、発行日時は、IDの発行日時を表す。
図12のプロキシサーバ102による連携処理は、基本的に図7と同様である。ただし、URL書換処理及びURL復元処理は次のように変更される。
図14は、図12のプロキシサーバ102によるURL書換処理のフローチャートである。URL書換部230は、Webクライアント部226からレスポンスを受け取ると(ステップ1401)、レスポンスからURLを抽出する(ステップ1402)。
次に、抽出されたURLのドメイン情報が、記録されている連携要求元アプリケーションサーバ111のドメイン情報と一致するか否かをチェックし(ステップ1403)、それらのドメイン情報が一致すれば、レスポンスをURL記録部229に転送する。
一方、2つのドメイン情報が一致しなければ、ID管理DB1201を参照して、レスポンスに対応するユニークなIDを発行済みか否かをチェックする(ステップ1404)。そして、IDを発行済みであれば、抽出されたURLを既存のIDを含むダミーのURLに書き換える(ステップ1407)。
この場合、抽出されたURLのドメイン情報が既存のIDに対応するベースドメイン情報に変更され、その変更されたドメイン情報に続いて2つのクエリが付加される。最初のクエリには元のドメイン情報以降のアドレスが設定され、2番目のクエリには既存のIDが設定される。
例えば、連携スクリプト1213にreq.open("GET", "http://app3.com/app3.html", false);と記述されていた場合、URLとしてhttp://app3.com/app3.htmlが抽出される。そして、ID=id0001が発行済みであれば、抽出されたURLがhttp://app1.com?path=app3.com/app3.html&_id_=id0001に書き換えられる。
次に、URL書換部230は、書き換え前及び書き換え後のドメイン情報を既存のIDに対応付けてURL変換DB801に登録する(ステップ1408)。図9のURL変換DBには既にid0001に対応するエントリが格納されているが、新たに(ID,書換前,書換後)=(id0001,app3.com,app1.com)のエントリが追加される。そして、URL書換部230は、抽出されたURLと、ダミーのURLを含むレスポンスとをURL記録部229に転送する。
ステップ1404においてIDを発行済みでなければ、ユニークなIDを発行する(ステップ1405)。そして、発行されたIDと、連携要求元アプリケーションサーバ111のドメイン情報と、リクエスト元のクライアント端末101のIPアドレスと、現在日時とをID管理DB1201に登録する(ステップ1406)。
次に、抽出されたURLを発行されたIDを含むダミーのURLに書き換える(ステップ1407)。この場合、抽出されたURLのドメイン情報が連携要求元アプリケーションサーバのドメイン情報に変更され、その変更されたドメイン情報に続いて2つのクエリが付加される。最初のクエリには元のドメイン情報以降のアドレスが設定され、2番目のクエリには発行されたIDが設定される。
そして、書き換え前及び書き換え後のドメイン情報を発行されたIDに対応付けてURL変換DB801に登録し(ステップ1408)、抽出されたURLと、ダミーのURLを含むレスポンスとをURL記録部229に転送する。
図15は、ステップ1404におけるID判定処理のフローチャートである。URL書換部230は、まず、レスポンスに対応するリクエスト元のクライアント端末のIPアドレスがID管理DB1201に登録されているか否かをチェックする(ステップ1501)。
そのIPアドレスが登録されていれば、次に、そのIPアドレスのエントリの発行日時が現在日時から一定範囲内か否かをチェックする(ステップ1502)。この一定範囲としては、例えば、現在日時から5分前までの範囲が用いられる。
発行日時が一定範囲内であれば、次に、そのエントリのベースドメイン情報が、記録されている連携要求元アプリケーションサーバのドメイン情報と一致するか否かをチェックする(ステップ1503)。
ベースドメイン情報が連携要求元アプリケーションサーバのドメイン情報と一致すれば、レスポンスに対応するIDは発行済みと判定し、そのエントリのIDを発行済みIDとして使用する(ステップ1504)。
ステップ1501においてIPアドレスが登録されていない場合、ステップ1502において発行日時が一定範囲内でない場合、又はステップ1503において2つのドメイン情報が一致しない場合は、IDは未発行と判定する(ステップ1505)。
図12のプロキシサーバ102によるURL復元処理は、基本的に図11と同様である。ただし、図11のステップ1103において、ダミーのURLに含まれるIDと同一のIDがURL変換DB801に複数存在する場合がある。そこで、URL復元部222は、ダミーのURL中のIDに対応する書き換え前及び書き換え後のドメイン情報の組をすべて取得し、ダミーのURL中のクエリに記述された書き換え前のドメイン情報と照合する。
クエリに記述された書き換え前のドメイン情報と一致する組があれば、ダミーのURL中の書き換え後のドメイン情報を、一致した書き換え前のドメイン情報に変更する。そして、クエリを削除して、書き換え前のURLを復元する。上述した例では、ダミーのURLであるhttp://app1.com?path=app3.com/app3.html&_id_=id0001からhttp://app3.com/app3.htmlが復元される。
なお、図2、図8、及び図12の構成では、安全URLDB224を参照して復元されたURLが安全であるか否かを判定しているが、システム設計に応じて安全サイト判定処理を省略しても構わない。
また、URLの書き換え方法は上述した例に限られるわけではなく、連携要求元アプリケーションサーバのドメイン情報を特定可能で、かつ、元のURLを復元可能な方法であれば、他の方法でも構わない。
図2、図8、及び図12のクライアント端末101、中継サーバ102、及びアプリケーションサーバ111、112、及び1211は、例えば、図16に示すような情報処理装置(コンピュータ)を用いて構成される。図16の情報処理装置は、CPU1601、メモリ1602、入力装置1603、出力装置1604、外部記憶装置1605、媒体駆動装置1606、およびネットワーク接続装置1607を備え、それらはバス1608により互いに接続されている。
メモリ1602は、例えば、Read Only Memory(ROM)、Random Access Memory(RAM)等を含み、処理に用いられるプログラムおよびデータを格納する。CPU1601は、メモリ1602を利用してプログラムを実行することにより、クライアント端末101、中継サーバ102、又はアプリケーションサーバ111、112、及び1211の処理を行う。
入力装置1603は、例えば、キーボード、ポインティングデバイス等であり、オペレータ又はユーザからの指示や情報の入力に用いられる。出力装置1604は、例えば、ディスプレイ、プリンタ、スピーカ等であり、オペレータ又はユーザへの問い合わせや処理結果の出力に用いられる。
外部記憶装置1605は、例えば、磁気ディスク装置、光ディスク装置、光磁気ディスク装置、テープ装置等である。情報処理装置は、この外部記憶装置1605に、プログラムおよびデータを格納しておき、必要に応じて、それらをメモリ1602にロードして使用する。外部記憶装置1605は、安全URLDB224、URL履歴DB227、URL変換DB801、及びID管理DB1201としても使用される。
媒体駆動装置1606は、可搬記録媒体1609を駆動し、その記録内容にアクセスする。可搬記録媒体1609は、メモリカード、フレキシブルディスク、光ディスク、光磁気ディスク等の任意のコンピュータ読み取り可能な記録媒体である。オペレータ又はユーザは、この可搬記録媒体1609にプログラムおよびデータを格納しておき、必要に応じて、それらをメモリ1602にロードして使用する。
ネットワーク接続装置1607は、インターネット等の通信ネットワークに接続され、通信に伴うデータ変換を行う。また、情報処理装置は、必要に応じて、プログラムおよびデータを外部の装置からネットワーク接続装置1607を介して受け取り、それらをメモリ1602にロードして使用する。
以上、図1から図16までを参照しながら説明した実施形態に関し、さらに以下の付記を開示する。
(付記1)
サーバ装置によるユニフォームリソースロケータ書換方法であって、
クライアント端末から第1のアプリケーションサーバ装置に対するリクエストを受信するリクエスト受信ステップと、
前記リクエストにより指定される、前記第1のアプリケーションサーバ装置のユニフォームリソースロケータ情報内の第1のドメイン情報を記録する記録ステップと、
前記第1のアプリケーションサーバ装置に前記リクエストを送信するリクエスト送信ステップと、
前記第1のアプリケーションサーバ装置から前記リクエストに対するレスポンスを受信するレスポンス受信ステップと、
前記レスポンスに含まれる、第2のアプリケーションサーバ装置のユニフォームリソースロケータ情報内の第2のドメイン情報を前記第1のドメイン情報に変更することで、該第2のアプリケーションサーバ装置のユニフォームリソースロケータ情報をダミーのユニフォームリソースロケータ情報に書き換える書換ステップと、
前記ダミーのユニフォームリソースロケータ情報を含むレスポンスを前記クライアント端末に送信するレスポンス送信ステップと
を備えることを特徴とするユニフォームリソースロケータ書換方法。
(付記2)
前記クライアント端末から前記ダミーのユニフォームリソースロケータ情報を指定するリクエストを受信するリクエスト受信ステップと、該ダミーのユニフォームリソースロケータ情報から前記第2のアプリケーションサーバ装置のユニフォームリソースロケータ情報を復元する復元ステップと、復元されたユニフォームリソースロケータ情報を指定するリクエストを該第2のアプリケーションサーバ装置に送信する復元後リクエスト送信ステップとをさらに備えることを特徴とする付記1記載のユニフォームリソースロケータ書換方法。
(付記3)
前記書換ステップは、前記第1のドメイン情報に続いて、前記第2のアプリケーションサーバ装置のユニフォームリソースロケータ情報内の第2のドメイン情報以降のアドレス情報をクエリとして付加することで、前記ダミーのユニフォームリソースロケータ情報を生成し、前記復元ステップは、前記クライアント端末から受信したリクエストにより指定されるユニフォームリソースロケータ情報に、該クエリを示す所定の文字列が含まれているか否かをチェックすることで、該ダミーのユニフォームリソースロケータ情報を識別することを特徴とする付記2記載のユニフォームリソースロケータ書換方法。
(付記4)
前記書換ステップは、前記第2のドメイン情報を前記第1のドメイン情報に変更した後のユニフォームリソースロケータ情報に続いて、該第2のドメイン情報の識別子を付加することで、前記ダミーのユニフォームリソースロケータ情報を生成し、該識別子と該第2のドメイン情報を対応付けて記録し、前記復元ステップは、前記クライアント端末から受信したリクエストにより指定されるユニフォームリソースロケータ情報に、該識別子が含まれているか否かをチェックすることで、該ダミーのユニフォームリソースロケータ情報を識別し、該識別子に対応付けて記録された該第2のドメイン情報を用いて前記第2のアプリケーションサーバ装置のユニフォームリソースロケータ情報を復元することを特徴とする付記2記載のユニフォームリソースロケータ書換方法。
(付記5)
前記書換ステップは、前記第1のドメイン情報に続いて、前記第2のアプリケーションサーバ装置のユニフォームリソースロケータ情報内の第2のドメイン情報以降のアドレス情報と該第2のドメイン情報の識別子とをクエリとして付加することで、前記ダミーのユニフォームリソースロケータ情報を生成し、該識別子と該第2のドメイン情報を対応付けて記録し、前記復元ステップは、前記クライアント端末から受信したリクエストにより指定されるユニフォームリソースロケータ情報に、該識別子が含まれているか否かをチェックすることで、該ダミーのユニフォームリソースロケータ情報を識別し、該識別子に対応付けて記録された該第2のドメイン情報を用いて前記第2のアプリケーションサーバ装置のユニフォームリソースロケータ情報を復元することを特徴とする付記2記載のユニフォームリソースロケータ書換方法。
(付記6)
前記復元されたユニフォームリソースロケータ情報があらかじめ登録されたユニフォームリソースロケータ情報に一致すれば、該復元されたユニフォームリソースロケータ情報が示すサイトを安全なサイトと判定する判定ステップをさらに備え、前記復元後リクエスト送信ステップは、該安全なサイトと判定された場合に、前記復元されたユニフォームリソースロケータ情報を指定するリクエストを前記第2のアプリケーションサーバ装置に送信することを特徴とする付記2乃至5のいずれかに記載のユニフォームリソースロケータ書換方法。
(付記7)
クライアント端末から第1のアプリケーションサーバ装置に対するリクエストを受信するリクエスト受信手段と、
前記リクエストにより指定される、前記第1のアプリケーションサーバ装置のユニフォームリソースロケータ情報内の第1のドメイン情報を格納する格納手段と、
前記第1のアプリケーションサーバ装置に前記リクエストを送信するリクエスト送信手段と、
前記第1のアプリケーションサーバ装置から前記リクエストに対するレスポンスを受信するレスポンス受信手段と、
前記レスポンスに含まれる、第2のアプリケーションサーバ装置のユニフォームリソースロケータ情報内の第2のドメイン情報を前記第1のドメイン情報に変更することで、該第2のアプリケーションサーバ装置のユニフォームリソースロケータ情報をダミーのユニフォームリソースロケータ情報に書き換える書換手段と、
前記ダミーのユニフォームリソースロケータ情報を含むレスポンスを前記クライアント
端末に送信するレスポンス送信手段と
を備えることを特徴とするユニフォームリソースロケータ書換装置。
実施形態のアプリケーションサーバ間連携処理を示す図である。 第1のプロキシサーバの構成図である。 初回アクセス時の連携処理を示す図である。 プロキシ設定画面を示す図である。 リクエスト送信画面を示す図である。 連携スクリプト実行時の連携処理を示す図である。 連携処理のフローチャートである。 第2のプロキシサーバの構成図である。 URL変換DBを示す図である。 第1のURL書換処理のフローチャートである。 URL復元処理のフローチャートである。 第3のプロキシサーバの構成図である。 ID管理DBを示す図である。 第2のURL書換処理のフローチャートである。 ID判定処理のフローチャートである。 情報処理装置の構成図である。 従来のアプリケーションサーバ間連携処理を示す図である。 中継サーバを経由するアプリケーションサーバ間連携処理を示す図である。
符号の説明
11、101 クライアント端末
21、22、111、112、1211 アプリケーションサーバ
23、113、1213 連携スクリプト
31 中継サーバ
102 プロキシサーバ
201 オペレータ
211 Webブラウザ
221 リクエスト受付部
222 URL復元部
223 安全サイト判定部
224 安全URLDB
225 安全URL登録部
226 Webクライアント部
227 URL履歴DB
228 レスポンス返却部
229 URL記録部
230 URL書換部
231、232、1212 Webページ
801 URL変換DB
1201 ID管理DB
1601 CPU
1602 メモリ
1603 入力装置
1604 出力装置
1605 外部記憶装置
1606 媒体駆動装置
1607 ネットワーク接続装置
1608 バス
1609 可搬記録媒体

Claims (8)

  1. サーバ装置によるユニフォームリソースロケータ書換方法であって、
    クライアント端末から第1のアプリケーションサーバ装置に対するリクエストを受信するリクエスト受信ステップと、
    前記リクエストにより指定される、前記第1のアプリケーションサーバ装置のユニフォームリソースロケータ情報内の第1のドメイン情報を記録する記録ステップと、
    前記第1のアプリケーションサーバ装置に前記リクエストを送信するリクエスト送信ステップと、
    前記第1のアプリケーションサーバ装置から前記リクエストに対するレスポンスを受信するレスポンス受信ステップと、
    前記レスポンスに含まれる、第2のアプリケーションサーバ装置のユニフォームリソースロケータ情報内の第2のドメイン情報を前記第1のドメイン情報に変更することで、該第2のアプリケーションサーバ装置のユニフォームリソースロケータ情報をダミーのユニフォームリソースロケータ情報に書き換える書換ステップと、
    前記ダミーのユニフォームリソースロケータ情報を含むレスポンスを前記クライアント端末に送信するレスポンス送信ステップと
    を備えることを特徴とするユニフォームリソースロケータ書換方法。
  2. 前記書換ステップは、前記第2のドメイン情報を前記第1のドメイン情報に変更した後のユニフォームリソースロケータ情報に続いて、該第2のドメイン情報の識別子を付加することで、前記ダミーのユニフォームリソースロケータ情報を生成することを特徴とする請求項1記載のユニフォームリソースロケータ書換方法。
  3. 前記書換ステップは、前記第1のドメイン情報に続いて、前記第2のアプリケーションサーバ装置のユニフォームリソースロケータ情報内の第2のドメイン情報以降のアドレス情報をクエリとして付加することで、前記ダミーのユニフォームリソースロケータ情報を生成することを特徴とする請求項1記載のユニフォームリソースロケータ書換方法。
  4. 前記クライアント端末から前記ダミーのユニフォームリソースロケータ情報を指定するリクエストを受信するリクエスト受信ステップと、該ダミーのユニフォームリソースロケータ情報から前記第2のアプリケーションサーバ装置のユニフォームリソースロケータ情報を復元する復元ステップと、復元されたユニフォームリソースロケータ情報を指定するリクエストを該第2のアプリケーションサーバ装置に送信する復元後リクエスト送信ステップとをさらに備えることを特徴とする請求項1乃至3のいずれか1項に記載のユニフォームリソースロケータ書換方法。
  5. 前記復元されたユニフォームリソースロケータ情報があらかじめ登録されたユニフォームリソースロケータ情報に一致すれば、該復元されたユニフォームリソースロケータ情報が示すサイトを安全なサイトと判定する判定ステップをさらに備え、前記復元後リクエスト送信ステップは、該安全なサイトと判定された場合に、前記復元されたユニフォームリソースロケータ情報を指定するリクエストを前記第2のアプリケーションサーバ装置に送信することを特徴とする請求項記載のユニフォームリソースロケータ書換方法。
  6. クライアント端末から第1のアプリケーションサーバ装置に対するリクエストを受信するリクエスト受信手段と、
    前記リクエストにより指定される、前記第1のアプリケーションサーバ装置のユニフォームリソースロケータ情報内の第1のドメイン情報を格納する格納手段と、
    前記第1のアプリケーションサーバ装置に前記リクエストを送信するリクエスト送信手段と、
    前記第1のアプリケーションサーバ装置から前記リクエストに対するレスポンスを受信するレスポンス受信手段と、
    前記レスポンスに含まれる、第2のアプリケーションサーバ装置のユニフォームリソースロケータ情報内の第2のドメイン情報を前記第1のドメイン情報に変更することで、該第2のアプリケーションサーバ装置のユニフォームリソースロケータ情報をダミーのユニフォームリソースロケータ情報に書き換える書換手段と、
    前記ダミーのユニフォームリソースロケータ情報を含むレスポンスを前記クライアント端末に送信するレスポンス送信手段と
    を備えることを特徴とするユニフォームリソースロケータ書換装置。
  7. 前記書換手段は、前記第2のドメイン情報を前記第1のドメイン情報に変更した後のユニフォームリソースロケータ情報に続いて、該第2のドメイン情報の識別子を付加することで、前記ダミーのユニフォームリソースロケータ情報を生成することを特徴とする請求項6記載のユニフォームリソースロケータ書換装置。
  8. 前記書換手段は、前記第1のドメイン情報に続いて、前記第2のアプリケーションサーバ装置のユニフォームリソースロケータ情報内の第2のドメイン情報以降のアドレス情報をクエリとして付加することで、前記ダミーのユニフォームリソースロケータ情報を生成することを特徴とする請求項6記載のユニフォームリソースロケータ書換装置。
JP2008275435A 2008-10-27 2008-10-27 ユニフォームリソースロケータ書換方法及び装置 Expired - Fee Related JP5347429B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008275435A JP5347429B2 (ja) 2008-10-27 2008-10-27 ユニフォームリソースロケータ書換方法及び装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008275435A JP5347429B2 (ja) 2008-10-27 2008-10-27 ユニフォームリソースロケータ書換方法及び装置

Publications (2)

Publication Number Publication Date
JP2010102625A JP2010102625A (ja) 2010-05-06
JP5347429B2 true JP5347429B2 (ja) 2013-11-20

Family

ID=42293199

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008275435A Expired - Fee Related JP5347429B2 (ja) 2008-10-27 2008-10-27 ユニフォームリソースロケータ書換方法及び装置

Country Status (1)

Country Link
JP (1) JP5347429B2 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012221346A (ja) * 2011-04-12 2012-11-12 Nippon Hoso Kyokai <Nhk> 受信端末、信頼度判定装置および信頼度判定システム
WO2014030487A1 (ja) * 2012-08-24 2014-02-27 富士フイルム株式会社 プロキシ・サーバならびにその動作制御方法およびその動作制御プログラム
JP6081847B2 (ja) * 2013-03-29 2017-02-15 Kddi株式会社 Webコンテンツの配信装置
JP6081845B2 (ja) * 2013-03-29 2017-02-15 Kddi株式会社 Webコンテンツの配信装置
JP6054799B2 (ja) * 2013-03-29 2016-12-27 Kddi株式会社 Webコンテンツの配信装置
JP5830581B1 (ja) * 2014-06-23 2015-12-09 株式会社ショーケース・ティービー 入力支援サーバ、入力支援方法及び入力支援プログラム
JP6350235B2 (ja) * 2014-11-18 2018-07-04 富士通株式会社 情報処理装置、情報処理装置制御方法及び情報処理装置制御プログラム
CN109543121B (zh) * 2018-11-09 2023-11-03 深圳万物云联科技有限公司 一种外链url资源调用方法及装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3220104B2 (ja) * 1999-02-16 2001-10-22 ケイディーディーアイ株式会社 Url階層構造を利用した情報自動フィルタリング方法および装置
JP4852938B2 (ja) * 2005-09-02 2012-01-11 富士ゼロックス株式会社 データサーバ及びデータ管理方法及びプログラム
JP4931553B2 (ja) * 2006-10-31 2012-05-16 富士通株式会社 ネットワーク間接続装置
JP4652350B2 (ja) * 2007-01-29 2011-03-16 Necソフト株式会社 リバースプロキシサーバ、その制御方法及びプログラム

Also Published As

Publication number Publication date
JP2010102625A (ja) 2010-05-06

Similar Documents

Publication Publication Date Title
JP5347429B2 (ja) ユニフォームリソースロケータ書換方法及び装置
US11886619B2 (en) Apparatus and method for securing web application server source code
US8959336B1 (en) Securing locally stored web-based database data
JP3807961B2 (ja) セッション管理方法、セッション管理システムおよびプログラム
US7657595B2 (en) Method and system for generating auxiliary-server cache identifiers
EP4191955A1 (en) Method and device for securely accessing intranet application
US9684628B2 (en) Mechanism for inserting trustworthy parameters into AJAX via server-side proxy
JP2004029939A (ja) 通信プロキシ装置、および、通信プロキシ装置を用いたサービス提供方法
JP2001515669A (ja) 分散コンピュータシステムにおける情報へのアクセス権を付与するシステムおよび方法
CA2907583A1 (en) Systems and methods for intercepting, processing, and protecting user data through web application pattern detection
JP2000242658A (ja) 個人情報管理装置及びカスタマイズ装置
US7873707B1 (en) Client-side URL rewriter
JP2004185263A (ja) 分散協調型コンテンツ配信システム
JP5488349B2 (ja) 中継装置、中継方法及び中継プログラム
JP4859775B2 (ja) コンテンツ配信装置、コンテンツ配信制御方法、および、コンテンツ配信制御プログラム
US20010037302A1 (en) Data web object host discovery system
CN113239308B (zh) 一种页面访问方法、装置、设备及存储介质
JP2008077614A (ja) セッション管理プログラム及びセッション管理方法
US11381545B2 (en) Multi-layer navigation based security certificate checking
JP4454989B2 (ja) データ提供システム、データ提供許可サーバ、データ提供サーバ、データ提供方法、プログラム及び記録媒体
US8826119B2 (en) Management of a web site that includes dynamic protected data
JP5088269B2 (ja) 画面情報管理方法
JP2005339008A (ja) アクセス制御方法およびプログラムと記録媒体
CN111414642B (zh) 一种基于网关的链接生成方法、装置、服务器和存储介质
KR20130047152A (ko) Rss 서비스 제공 장치 및 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110808

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120829

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120904

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121105

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130723

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130805

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees