JP5146088B2 - ウェブ情報中継方法及び装置 - Google Patents
ウェブ情報中継方法及び装置 Download PDFInfo
- Publication number
- JP5146088B2 JP5146088B2 JP2008120734A JP2008120734A JP5146088B2 JP 5146088 B2 JP5146088 B2 JP 5146088B2 JP 2008120734 A JP2008120734 A JP 2008120734A JP 2008120734 A JP2008120734 A JP 2008120734A JP 5146088 B2 JP5146088 B2 JP 5146088B2
- Authority
- JP
- Japan
- Prior art keywords
- relay
- host name
- relay server
- extracted
- uniform resource
- 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
Links
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P20/00—Technologies relating to chemical industry
- Y02P20/50—Improvements relating to the production of bulk chemicals
- Y02P20/52—Improvements relating to the production of bulk chemicals using catalysts, e.g. selective catalysts
Landscapes
- Information Transfer Between Computers (AREA)
Description
対象URL http://target.example/contact/services/
CGI経由URL
http://relay.example/?url=http://target.example/contact/services/
また、パスを使用した方式では、以下の例に示されるように、アクセス対象のURLがCGI経由のURLに変更される(例えば、特許文献1を参照)。
対象URL http://target.example/contact/services/
CGI経由URL http://relay.example/target.example/contact/services/
さらに、CDNで使われた方式では、以下の例に示されるように、アクセス対象のホス
ト名を書き換えてユーザにアクセスしてもらうことで、CDN経由のキャッシュを返す処理を実現している(例えば、非特許文献1を参照)。
対象URL http://target.example/contact/services/
CDN経由URL http://target.example.relay.example/contact/services/
Webシステム、特に企業内のWebシステムにおいてはセキュリティの確保が重要な課題となっているが、従来のコンテンツフィルタ技術を用いて中継サーバを利用した場合、このセキュリティの確保ができないという問題がある。具体的には、以下の通りである。
(1)CGIパラメタを使用した方式及びパスを使用した方式では、URLがすべてrelay.example という同一ドメインに属するパスになってしまうため、ブラウザに備わっているsame origin policyというセキュリティのための機構が働かなくなってしまう。
(2)CDNで使われた方式では、中継サーバを経由しても、別々のホストが同一ドメインと認識されることはないため、上記(1)のような問題は生じない。しかしながら、現在Webシステムを用いる上で重要なセキュリティ技術であるHypertext Transfer Protocol Security(HTTPS)を用いる場合、CDNで使われた方式では問題がある。
licyによるセキュリティ及びHTTPSによるセキュリティを両立させることである。
受信ステップは、クライアントからのリクエストを受信する。編集ステップは、受信したリクエストに対応するウェブページを編集する際に、マッシュアップ対象のページに記述されたユニフォームリソースロケータ情報を抽出し、抽出されたユニフォームリソースロケータ情報のホスト名のドットを別の文字に置換するとともに、中継サーバのホスト名を付加する。送信ステップは、編集後のウェブページをクライアントへ送信する。
図1は、実施形態の中継システムの構成例を示している。この中継システムは、クライアント101、中継サーバ102、及び目的サーバ104〜106を備える。これらの装置は、インターネットのような通信ネットワークを介して互いに通信することができる。
(ex1)
http://target.example/
→http(s)://http-target-example.relay.example/
(ex2)
https://target.number2.example/path/
→http(s)://https-target-number2-example.relay.example/path/
(ex3)
http://with-hyphen.example/
→http(s)://http-with--hyphen-example.relay.example/
(ex4)
http://with.port.example:8080/
→http(s)://http-with-port-example--8080.relay.example/
ex1〜ex4では、FQDNの“. ”(ドット)が“- ”(ハイフン)に置換されるとともに、中継サーバ102のホスト名relay.exampleが付加されている。さらに、ex3では、FQDNのハイフンがハイフン2つに置換されており、ex4では、FQDNのポート番号8080が取り出され、http-with-port-exampleの後ろにハイフン2つで連結されている。これにより、元URLのFQDNが書き換え後のURLのホスト名にエンコードされる。
1.httpから始まる絶対パス記述を上記書き換えルールに従って変換する。
2.すでに上記書き換えルールに従っているパスは変換しない。
1.システム間連携に必要な以下の2点のセキュリティを両立させることができる。
(1)ワイルドカードSSL証明書を利用することで、中継サーバのサーバ認証が可能 になる。上記のex1〜ex4では、Common Name (CN)を*.relay.example としてワイルドカードSSL証明書を取得すればよい。
(2)異なるホストは異なるサブドメインにマップされるため、Cross Site Scripting(XSS)攻撃を回避できる。
2.レスポンスのHyperText Markup Language (HTML)文書のDocument Object Model (DOM)解析及びパス解決が不要なため、中継処理の負担が軽い。
3.ユーザが一度この形式のURLにアクセスすると、リンクをたどるいわゆるWebブラウズ行為を通して、自然にずっと中継サーバ102経由のアクセスが保たれる。
(1)DNS201は、ホスト名解決を行って中継サーバ102のIPアドレスをクライアント101に返す。
(2)ブラウザは、中継サーバ102に対して、/pathに対するリクエストを発行する。
(3)中継サーバ102は、リクエストヘッダからhttp-target-exampleという文字列を取得し、これをhttp://target.exampleに変換する。そして、http://target.exampleを/pathというパス情報と合わせて、http://target.example/pathへのリクエストを発行し、目的サーバ203からのレスポンスを受信する。
(4)レスポンスのMultipurpose Internet Mail Extension(MIME)タイプに応じて、レスポンスに対する所定の加工を行う。リンクを伴うコンテンツタイプの場合は、単純テキスト置換で絶対パスの書き換えを行う。この場合、DOM解析は不要なので処理が高速になる。画像等のように加工の必要のないコンテンツに対しては、何も行わない。
(5)加工されたレスポンスをクライアント101に返す。ここで返されるHTML文書上のパスは、やはり中継サーバ102を経由するものになるが、そのパスへのアクセスも同様に処理されるため、再帰的に整合性の取れたページがブラウザ画面に表示される。
図4及び図5は、サブドメイン解釈部302によるリクエストの加工例を示している。この例では、リクエストに含まれる情報のうち、メソッド、パス、及びメッセージボディは加工されない。一方、ホスト及びポートはURL逆変換加工により変換され、ヘッダは図5に示すように加工される。ヘッダに含まれる情報のうち、Host及びReferer はURL逆変換加工により変換され、Accept、If-Modified-Since 、及びUser-Agentは加工されない。例えば、図6のようなリクエストヘッダは、加工されて図7のようなリクエストヘッダに変換される。
1.入力URLからプロトコル、FQDN、及びポート番号(省略されているときを除く
)の文字列を取り出す(ステップ401)。
2.FQDN文字列にハイフンが含まれていれば(ステップ402)、これをハイフン2つに置換する(ステップ403)。
3.上記2で生成された文字列のドットをハイフンに置換する(ステップ404)。
4.上記1で取り出したプロトコル文字列(http、https 等)を、上記3で生成された文字列の前にハイフンで連結する(ステップ405)。
5.上記1で取り出したポート番号文字列があれば(ステップ406)、上記4で生成された文字列の後ろにハイフン2つで連結する(ステップ407)。
6.上記5で生成された文字列をホスト名として、中継サーバ102のドメイン(relay.example)に付加する形で、出力URLを生成する(ステップ408)。
1.入力URLのホスト名文字列(FQDNの一番左側の要素)を取り出す(ステップ501)。
2.上記1で取り出した文字列は先頭がhttp- またはhttps-で始まっているはずなので、この先頭文字列をプロトコル文字列とする(ステップ502)。
3.上記1で取り出した文字列の末尾がハイフン2つに続く数字列となっていれば(ステップ503)、この数字列をポート番号文字列とする(ステップ504)。そうでない場合は、ポート番号文字列は省略する。
4.上記1で取り出した文字列から、上記2及び3で解釈に用いた先頭及び末尾の文字列を削除する(ステップ505)。
5.上記4で残った文字列のハイフンをすべてドットに置換する(ステップ506)。
6.上記5で生成された文字列にドットが2つ連続して現れれば(ステップ507)、その2つのドットを1つのドットに置換し、FQDN文字列を生成する(ステップ508)。
7.上記2で取り出したプロトコル文字列、上記6で生成されたFQDN文字列、及び上記3で取り出したポート番号文字列を用いて、出力URLを生成する(ステップ509)。
(ex5)
http://target.example/
→http(s)://httpjtargetjexample.relay.example/
さらに、次に示すように、上記ex5で得られた文字列の順序を反転させる加工を追加してもよい。
(ex6)
http://target.example/
→http(s)://httpjtargetjexample.relay.example/
→http(s)://elpmaxejtegratjptth.relay.example/
また、次に示すように、置換文字としてハイフンを用いた文字列の末尾にユーザ名を付加する加工を追加してもよい。
(ex7)
http://target.example/
→http(s)://http-target-example.relay.example/
→http(s)://http-target-example-sato.relay.example/
さらに、次に示すように、上記ex7で得られた文字列の末尾に「本日」の日付を付加する加工を追加してもよい。
(ex8)
http://target.example/
→http(s)://http-target-example.relay.example/
→http(s)://http-target-example-sato.relay.example/
→http(s)://http-target-example-sato-20080415.relay.net/
さらに、次に示すように、上記ex8で得られた文字列の5文字目以降を換字暗号で変換する加工を追加してもよい。
(ex9)
http://target.example/
→http(s)://http-target-example.relay.example/
→http(s)://http-target-example-sato.relay.example/
→http(s)://http-target-example-sato-20080415.relay.example/
→http(s)://http7jkh2zj7ztk6g5z7ikjf7v8838-r0.relay.example/
上記ex9で用いた換字暗号を1行のPractical Extraction and Report Language(Perl)プログラムで記述すると、次のようになる。ただし、可逆暗号化の種類及び方式はこれに限られない。
暗号 perl -pe "tr/abcdefghijklmnopqrstuvwxyz\-0123456789/klxyz12abpq56efg9hijmnstuo78rvc\-0dw34/"
復号 perl -pe "tr/klxyz12abpq56efg9hijmnstuo78rvc\-0dw34/abcdefghijklmnopqrstuvwxyz\-0123456789/"
人間にとっての可読性や計算機資源の節約を考慮すると、ハイフンを用いたテキスト置換が最も実用的と考えられる。しかし、目的サーバのURLをユーザから隠蔽する等の特殊な用途においては、その用途に応じて適切な変換ルールを用いることが可能である。
(1)中継サーバを適切に設定することにより、既存のWebページ及びWebアプリケーションに対して全く手を加えることなく、外部からスクリプト挿入等を行った改造版をユーザに提供することができる。
(2)元ドメインが異なるURLは中継サーバを経由しても別のドメインとして扱われる
ため、中継サーバ経由で複数のWebサイトにアクセスしているような状況でも、ブラウザ側のsame origin policyによって悪意のあるサイトからWebシステムを守ることが可能になる。
(3)中継サーバ経由の全URLに対して有効なワイルドカードSSL証明書を事前に用意することができるため、ユーザのブラウザでサーバの正当性が確認でき、中継サーバ利用時の不安要素をなくすことができる。
(4)特に大規模な企業システム等に対して少しでも機能追加を行うためには、小規模とはいえプログラムに変更を加えることになる。このため、多くの場合、全機能の再テストが必要となり、コスト面で現実的ではない。しかし、中継サーバを用いることにより、既存システムに全く手を加えることなく、出力加工により対応できる範囲内で機能追加や機能変更が可能になる。Asynchronous JavaScript + XML (Ajax)等のWebアプリケーションにおけるクライアント技術の台頭により、出力加工により対応できる範囲は非常に広がっており、特に他のシステムとの連携等を柔軟に行えるようになる。
Unit (CPU)1401、メモリ1402、入力装置1403、出力装置1404、外部記憶装置1405、媒体駆動装置1406、およびネットワーク接続装置1407を備え、それらはバス1408により互いに接続されている。
ーク上の任意の伝送媒体を介して情報処理装置1502に送信する。CPU1401は、そのデータを用いてそのプログラムを実行し、上述した処理を行う。
(付記1)中継サーバによるウェブ情報中継方法であって、
クライアントからのリクエストを受信するステップと、
前記リクエストに対応するウェブページを編集する際に、マッシュアップ対象のページに記述されたユニフォームリソースロケータ情報を抽出し、抽出されたユニフォームリソースロケータ情報のホスト名のドットを別の文字に置換するとともに、前記中継サーバのホスト名を付加するステップと、
編集後のウェブページを前記クライアントへ送信するステップと
を含むことを特徴とするウェブ情報中継方法。
(付記2)前記中継サーバは、前記抽出されたユニフォームリソースロケータ情報の完全修飾ドメイン名をホスト名にエンコードし、得られたホスト名に、前記中継サーバのプロトコル、前記中継サーバのホスト名、及び前記抽出されたユニフォームリソースロケータ情報のパス名を結合して、前記中継サーバを経由するためのユニフォームリソースロケータ情報を生成することを特徴とする付記1記載のウェブ情報中継方法。
(付記3)前記中継サーバを経由するためのユニフォームリソースロケータ情報を含むリクエストを前記クライアントから受信するステップと、
前記中継サーバを経由するためのユニフォームリソースロケータ情報に含まれるホスト名を抽出し、抽出されたホスト名から前記中継サーバのホスト名を削除し、残された文字列から、前記ドットを前記別の文字に置換する前のホスト名を生成するステップと、
生成されたホスト名を含むリクエストを目的サーバへ送信するステップと
をさらに含むことを特徴とする付記1又は2記載のウェブ情報中継方法。
(付記4)前記中継サーバにあらかじめ格納されている、前記マッシュアップ対象のページを有する目的サーバとスクリプト情報の組を示す情報を参照して、該目的サーバに対応するスクリプト情報を前記リクエストに対応するウェブページに挿入するステップをさらに含むことを特徴とする付記1、2、又は3記載のウェブ情報中継方法。
(付記5)クライアントからのリクエストを受信する受信部と、
前記リクエストに対応するウェブページを編集する際に、マッシュアップ対象のページに記述されたユニフォームリソースロケータ情報を抽出し、抽出されたユニフォームリソースロケータ情報のホスト名のドットを別の文字に置換するとともに、前記中継サーバのホスト名を付加する編集部と、
編集後のウェブページを前記クライアントへ送信する送信部と
を備えることを特徴とするウェブ情報中継装置。
(付記6)クライアントからのリクエストを受信するステップと、
前記リクエストに対応するウェブページを編集する際に、マッシュアップ対象のページに記述されたユニフォームリソースロケータ情報を抽出し、抽出されたユニフォームリソースロケータ情報のホスト名のドットを別の文字に置換するとともに、前記中継サーバのホスト名を付加するステップと、
編集後のウェブページを前記クライアントへ送信するステップと
を含む処理をコンピュータに実行させるためのプログラム。
102 中継サーバ
104、105、106、203 目的サーバ
201 DNS
202 ワイルドカードSSL証明書
301 要求受付部
302 サブドメイン解釈部
303 要求転送部
304 クライアントセッション管理部
305 ユーザ情報格納部
306 証明書格納部
307 応答転送部
308 応答変換部
309 応答解釈部
310 応答受付部
1401 CPU
1402 メモリ
1403 入力装置
1404 出力装置
1405 外部記憶装置
1406 媒体駆動装置
1407 ネットワーク接続装置
1408 バス
1501 外部装置
1502 情報処理装置
1511 データベース
Claims (5)
- 中継サーバによるウェブ情報中継方法であって、
クライアントからのリクエストを受信するステップと、
前記リクエストに対応するウェブページを編集する際に、マッシュアップ対象のページに記述されたユニフォームリソースロケータ情報を抽出し、抽出されたユニフォームリソースロケータ情報のホスト名のドットを別の文字に置換するとともに、前記中継サーバのホスト名を付加するステップと、
編集後のウェブページを前記クライアントへ送信するステップと
を含むことを特徴とするウェブ情報中継方法。 - 前記中継サーバは、前記抽出されたユニフォームリソースロケータ情報の完全修飾ドメイン名をホスト名にエンコードし、得られたホスト名に、前記中継サーバのプロトコル、前記中継サーバのホスト名、及び前記抽出されたユニフォームリソースロケータ情報のパス名を結合して、前記中継サーバを経由するためのユニフォームリソースロケータ情報を生成することを特徴とする請求項1記載のウェブ情報中継方法。
- 前記中継サーバを経由するためのユニフォームリソースロケータ情報を含むリクエストを前記クライアントから受信するステップと、
前記中継サーバを経由するためのユニフォームリソースロケータ情報に含まれるホスト名を抽出し、抽出されたホスト名から前記中継サーバのホスト名を削除し、残された文字列から、前記ドットを前記別の文字に置換する前のホスト名を生成するステップと、
生成されたホスト名を含むリクエストを目的サーバへ送信するステップと
をさらに含むことを特徴とする請求項1又は2記載のウェブ情報中継方法。 - クライアントからのリクエストを受信する受信部と、
前記リクエストに対応するウェブページを編集する際に、マッシュアップ対象のページに記述されたユニフォームリソースロケータ情報を抽出し、抽出されたユニフォームリソースロケータ情報のホスト名のドットを別の文字に置換するとともに、前記中継サーバのホスト名を付加する編集部と、
編集後のウェブページを前記クライアントへ送信する送信部と
を備えることを特徴とするウェブ情報中継装置。 - クライアントからのリクエストを受信するステップと、
前記リクエストに対応するウェブページを編集する際に、マッシュアップ対象のページに記述されたユニフォームリソースロケータ情報を抽出し、抽出されたユニフォームリソースロケータ情報のホスト名のドットを別の文字に置換するとともに、前記中継サーバのホスト名を付加するステップと、
編集後のウェブページを前記クライアントへ送信するステップと
を含む処理をコンピュータに実行させるためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008120734A JP5146088B2 (ja) | 2008-05-02 | 2008-05-02 | ウェブ情報中継方法及び装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008120734A JP5146088B2 (ja) | 2008-05-02 | 2008-05-02 | ウェブ情報中継方法及び装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2009271676A JP2009271676A (ja) | 2009-11-19 |
JP5146088B2 true JP5146088B2 (ja) | 2013-02-20 |
Family
ID=41438182
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008120734A Expired - Fee Related JP5146088B2 (ja) | 2008-05-02 | 2008-05-02 | ウェブ情報中継方法及び装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5146088B2 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5581820B2 (ja) * | 2010-06-04 | 2014-09-03 | 富士通株式会社 | 中継サーバ装置、クッキー制御方法およびクッキー制御プログラム |
JP5565197B2 (ja) * | 2010-08-18 | 2014-08-06 | 富士通株式会社 | Webアプリケーションの連携方法、連携装置、および連携プログラム |
JP5863398B2 (ja) * | 2011-11-04 | 2016-02-16 | サイボウズ株式会社 | サーバ装置及びサーバ装置の制御方法 |
JP5811006B2 (ja) * | 2012-03-29 | 2015-11-11 | 富士通株式会社 | 情報処理装置、情報処理方法、および情報処理プログラム |
JP6350235B2 (ja) * | 2014-11-18 | 2018-07-04 | 富士通株式会社 | 情報処理装置、情報処理装置制御方法及び情報処理装置制御プログラム |
CN111064713B (zh) * | 2019-02-15 | 2021-05-25 | 腾讯科技(深圳)有限公司 | 一种分布式***中的节点控制方法和相关装置 |
-
2008
- 2008-05-02 JP JP2008120734A patent/JP5146088B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2009271676A (ja) | 2009-11-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2005321970A (ja) | コンピュータシステム | |
JP5146088B2 (ja) | ウェブ情報中継方法及び装置 | |
US20110131408A1 (en) | Document link security | |
EP2144420A1 (en) | Web application security filtering | |
JP2004029939A (ja) | 通信プロキシ装置、および、通信プロキシ装置を用いたサービス提供方法 | |
US20090187820A1 (en) | Method and apparatus for checkout transition in an e-commerce application | |
US8201238B1 (en) | Remote directory browsing through a secure gateway of a virtual private network | |
WO2015183701A1 (en) | Client/server authentication using dynamic credentials | |
WO2002039286A1 (en) | Encoding of universal resource locators in a security gateway to enable manipulation by active content | |
CN101132420A (zh) | 一种基于ssl vpn的链接改写方法和设备 | |
JP2008197973A (ja) | ユーザ認証システム | |
JP2007334411A (ja) | 制御プログラムおよび通信システム | |
US20170093772A1 (en) | Method and System for Optimizing and Preventing Failure of Sender Policy Framework (SPF) Lookups | |
CN105072123A (zh) | 一种集群环境下的单点登陆退出方法及*** | |
JP5347429B2 (ja) | ユニフォームリソースロケータ書換方法及び装置 | |
CN101499100B (zh) | 电子商务应用中校验转换的方法和设备 | |
KR102087268B1 (ko) | 웹 컨트롤 인터페이스를 제공하는 장치 및 이의 동작 방법 | |
JP2007257500A (ja) | 被認証装置、被認証プログラム、被認証方法、WebブラウザプラグインおよびWebブラウザブックマークレット | |
JP6317506B2 (ja) | 中継装置、中継方法および中継プログラム | |
JP2009301456A (ja) | データ変換プログラム、データ変換装置およびデータ変換方法 | |
JP4871396B2 (ja) | ウェブサイトの閲覧を管理するシステム | |
CN113824756A (zh) | 文件处理方法、装置、存储介质及电子设备 | |
JP6897103B2 (ja) | 機器、認証システム、及び認証方法 | |
JP4728634B2 (ja) | クライアントアクセス管理方法および装置 | |
JP4937070B2 (ja) | 書類データ管理方法、書類データ作成方法、サーバおよびコンピュータプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20110118 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20121017 |
|
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: 20121030 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20121112 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5146088 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20151207 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |