JP6557184B2 - 機能拡張システム、機能拡張方法および機能拡張プログラム - Google Patents
機能拡張システム、機能拡張方法および機能拡張プログラム Download PDFInfo
- Publication number
- JP6557184B2 JP6557184B2 JP2016127985A JP2016127985A JP6557184B2 JP 6557184 B2 JP6557184 B2 JP 6557184B2 JP 2016127985 A JP2016127985 A JP 2016127985A JP 2016127985 A JP2016127985 A JP 2016127985A JP 6557184 B2 JP6557184 B2 JP 6557184B2
- Authority
- JP
- Japan
- Prior art keywords
- browser
- rule
- code
- message
- function expansion
- 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.)
- Active
Links
Images
Landscapes
- Digital Computer Display Output (AREA)
- Information Transfer Between Computers (AREA)
- Stored Programmes (AREA)
- User Interface Of Digital Computer (AREA)
Description
図1は、第1の実施形態に係る機能拡張システムの構成の一例を示す図である。第1の実施形態に係る機能拡張システムは、プロキシサーバ10、端末20およびWebサーバ30を有する。なお、図1に示す構成は一例にすぎず、具体的な構成や各装置の数は特に限定されない。
ルールファイルには、UI拡張を行う条件(発火条件)、対象UI要素および操作内容が記載されている。例えば、発火条件はURLが「http://xxx.yyy/zzz/.*」という正規表現とマッチすること、対象UI要素は「input[name=検索ボタン]」というW3CのCSSのSelector記法により表されるHTML内のUI要素、操作内容は<input type="submit" name="Search button" value="Search"...>で表されるUI要素を対象UI要素と同じサイズで同じ位置に重ねて表示する、拡張後のUI要素に対する入力内容を元のUI要素に転記する、新たなUI要素は追加せずに元のUI要素に直接バリデーション機能を追加する、などといった内容である。同じサイズ、同じ位置で対象UI要素の上に重ねて表示する方法は、CSSを使いposition: absolute及びz-indexを対象UI要素よりも大きな値に設定することで、実現可能であり、JavaScript等を用いることで容易に実現可能である。また、対象UI要素に依存しない拡張内容であれば、対象UI要素を指定せずに、操作内容を記述することも可能である。
以下では、プロキシサーバ10で、どのように機能拡張処理が実現されるか、図6から図11で示される例を用いて具体的に説明する。図6は、拡張処理の適用前後のWebブラウザによる表示結果を示す図である。図7は、対象Webサイトのソースコード(HTML)のうち、関連する部分を示す図である。図8は、JSON形式で記述したルールファイルの例を示す図である。図9は、ルールファイルから参照され、Webブラウザにて解釈実行されるJavaScriptコードの例を示す図である。図10は、UI拡張関連コードが注入された後のメッセージ例を示す図である。図11は、UI拡張関連コードが注入された後でかつWebブラウザによって解釈実行された後のメッセージ例を示す図である。
図12は、第1の実施形態に係る機能拡張システムにおけるルール解釈実行処理の流れの一例を示すフローチャートである。図13は、第1の実施形態に係る機能拡張システムにおける対象アプリケーション変化検知処理の流れの一例を示すフローチャートである。
第1の実施形態に係る機能拡張システムにおいて、プロキシサーバ10は、Webサーバ30から端末20上で動作するWebブラウザ21に至るまでの経路上で、Webサーバ30から端末20宛てに送信されたメッセージを取得し、ユーザインタフェースを拡張するルールが規定されたルールファイルと、ルールを解釈して実行するコードとをメッセージに追加する。そして、端末20は、追加されたコードをWebブラウザ21上で実行して、ルールファイルを解釈し、該ルールファイルに基づいて、Webブラウザ21によって表示される画面上のユーザインタフェース機能を拡張する。このため、ユーザインタフェース機能を簡易に拡張することが可能である。
上記の第1の実施形態では、プロキシサーバ10がメッセージにUI拡張関連コードを注入する場合を説明したが、これに限定されるものではなく、ブラウザアドオンがメッセージにUI拡張関連コードを注入するようにしてもよい。そこで、以下では、第2の実施形態として、ブラウザアドオンがメッセージにUI拡張関連コードを注入する場合を説明する。なお、第1の実施形態と同様の構成および処理の説明は省略する。
さて、これまで本発明の実施形態について説明したが、本発明は上述した実施形態以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では第3の実施形態として本発明に含まれる他の第3の実施形態を説明する。
端末20の実行部25は、予め決められたファイル以外の情報を、予め決められた外部サイト以外へWebブラウザ21が送信することを中止するようにしてもよい。例えば、ポリシーに応じた、Webブラウザ21上で動作する言語(ここではJavaScriptを例にとる)によって書かれたコードのセキュリティ担保について、最も簡単だが限定的な実現方法は、Webサーバ30からのレスポンスがWebブラウザ21のレンダリングエンジンに渡される前に捕捉し、チェックして書き換える手法である。例えば、ブラウザアドオン40やプロキシサーバ10において、外部に送信したりWebブラウザ21上に表示したりしてよいファイルやデータの属するファイルのリストを予め正規表現などで指定しておき、またアクセスしてよい外部サイトのドメインを正規表現などで予め指定しておき、外部への送信や表示時にこれらのリストをチェックすることで、ユーザスクリプトによる悪意ある情報流出を防ぐ方法が考えられる。
プロキシサーバ10を活用した形態において、SSLにより途中の通信内容が暗号化されているケースでは、適用に工夫が必要である。このような場合には、図17に例示するように例えば、リバース型のプロキシサーバ10を配置し、その手前もしくはプロキシサーバ10内部にSSL終端機能を有するSSL終端装置(例えば、ロードバランサーなど)50を配置し、SSL終端機能でSSLを一旦終端させることで、回避可能である。この場合、SSL終端機能とWebサーバ30間の通信は暗号化がなされないことから、必要に応じて内側のネットワークは閉域網を利用するなど、エンドツーエンドの通信の安全性を担保する。もしくは、プロキシサーバ10もしくはSSL終端装置50を起点に、Webサーバ30との間をHTTPS通信とする、といった手法も可能である。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
また、上記実施形態において説明した機能拡張システムが実行する処理をコンピュータが実行可能な言語で記述したプログラムを作成することもできる。例えば、実施形態に係る機能拡張システムにおける各装置(プロキシサーバ10や端末20)が実行する処理をコンピュータが実行可能な言語で記述した機能拡張プログラムを作成することもできる。この場合、コンピュータが機能拡張プログラムを実行することにより、上記実施形態と同様の効果を得ることができる。さらに、かかる機能拡張プログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録された機能拡張プログラムをコンピュータに読み込ませて実行することにより上記実施形態と同様の処理を実現してもよい。
11 追加部
20 端末
21 Webブラウザ
22 OS
23 入力デバイス
24 ディスプレイ
30 Webサーバ
40 ブラウザアドオン
50 SSL終端装置
Claims (5)
- ブラウザを動作させる端末と、該端末と通信を行うサーバとを有する機能拡張システムであって、
前記サーバから前記ブラウザに至るまでの経路上で、前記サーバから前記端末宛てに送信されたメッセージを取得し、ユーザインタフェースを拡張するルールが規定されたルールファイルと、前記ルールを解釈して実行するコードとを前記メッセージに追加する追加部と、
前記追加部によって追加されたコードを前記ブラウザ上で実行して、前記ルールファイルを解釈し、該ルールファイルに基づいて、前記ブラウザによって表示される画面上のユーザインタフェース機能を拡張する実行部と
を備え、
前記追加部は、アプリケーションの変化を検知するコードと、前記アプリケーションの変化に応じて前記ルールを解釈して実行するコードとをさらに前記メッセージに追加し、
前記実行部は、前記追加部によって追加された各コードを前記ブラウザ上で実行し、前記アプリケーションの変化を検知した場合には、該変化に応じて前記ルールファイルを再度解釈して、対象Webページ中のUI要素を残したままその視覚的な位置に重ねあわせながら、当該UI要素とは別のUI要素を前記メッセージのBodyタグの当該UI要素とは別の任意の場所に追加することにより、前記ユーザインタフェース機能を拡張することを特徴とする機能拡張システム。 - 前記実行部は、監視すべきイベントを指定するリストと監視すべきでないイベントを指定するリストを参照し、監視すべきイベントを指定するリストに記載されたイベントによりアプリケーションの変化を検知した場合に該変化に応じて前記ルールファイルを再度解釈して、前記ユーザインタフェース機能を拡張することを特徴とする請求項1に記載の機能拡張システム。
- 前記実行部は、予め決められたファイル以外の情報を、予め決められた外部サイト以外へ前記ブラウザが送信することを中止することを特徴とする請求項1に記載の機能拡張システム。
- ブラウザを動作させる端末と、該端末と通信を行うサーバとを有する機能拡張システムによって実行される機能拡張方法であって、
前記サーバから前記ブラウザに至るまでの経路上で、前記サーバから前記端末宛てに送信されたメッセージを取得し、ユーザインタフェースを拡張するルールが規定されたルールファイルと、前記ルールを解釈して実行するコードとを前記メッセージに追加する追加工程と、
前記追加工程によって追加されたコードを前記ブラウザ上で実行して、前記ルールファイルを解釈し、該ルールファイルに基づいて、前記ブラウザによって表示される画面上のユーザインタフェース機能を拡張する実行工程と
を含み、
前記追加工程は、アプリケーションの変化を検知するコードと、前記アプリケーションの変化に応じて前記ルールを解釈して実行するコードとをさらに前記メッセージに追加し、
前記実行工程は、前記追加工程によって追加された各コードを前記ブラウザ上で実行し、前記アプリケーションの変化を検知した場合には、該変化に応じて前記ルールファイルを再度解釈して、対象Webページ中のUI要素を残したままその視覚的な位置に重ねあわせながら、当該UI要素とは別のUI要素を前記メッセージのBodyタグの当該UI要素とは別の任意の場所に追加することにより、前記ユーザインタフェース機能を拡張することを特徴とする機能拡張方法。 - 端末と通信を行うサーバから前記端末上で動作するブラウザに至るまでの経路上で、前記サーバから前記端末宛てに送信されたメッセージを取得し、ユーザインタフェースを拡張するルールが規定されたルールファイルと、前記ルールを解釈して実行するコードとを前記メッセージに追加する追加ステップと、
前記追加ステップによって追加されたコードを前記ブラウザ上で実行して、前記ルールファイルを解釈し、該ルールファイルに基づいて、前記ブラウザによって表示される画面上のユーザインタフェース機能を拡張する実行ステップと
をコンピュータに実行させ、
前記追加ステップは、アプリケーションの変化を検知するコードと、前記アプリケーションの変化に応じて前記ルールを解釈して実行するコードとをさらに前記メッセージに追加し、
前記実行ステップは、前記追加ステップによって追加された各コードを前記ブラウザ上で実行し、前記アプリケーションの変化を検知した場合には、該変化に応じて前記ルールファイルを再度解釈して、対象Webページ中のUI要素を残したままその視覚的な位置に重ねあわせながら、当該UI要素とは別のUI要素を前記メッセージのBodyタグの当該UI要素とは別の任意の場所に追加することにより、前記ユーザインタフェース機能を拡張することを特徴とする機能拡張プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016127985A JP6557184B2 (ja) | 2016-06-28 | 2016-06-28 | 機能拡張システム、機能拡張方法および機能拡張プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016127985A JP6557184B2 (ja) | 2016-06-28 | 2016-06-28 | 機能拡張システム、機能拡張方法および機能拡張プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2018005344A JP2018005344A (ja) | 2018-01-11 |
JP6557184B2 true JP6557184B2 (ja) | 2019-08-07 |
Family
ID=60947931
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016127985A Active JP6557184B2 (ja) | 2016-06-28 | 2016-06-28 | 機能拡張システム、機能拡張方法および機能拡張プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6557184B2 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011143172A1 (en) | 2010-05-11 | 2011-11-17 | Thorium Power, Inc. | Fuel assembly with metal fuel alloy kernel and method of manufacturing thereof |
CN111381898B (zh) * | 2018-12-28 | 2023-12-22 | 北京字节跳动网络技术有限公司 | 一种接口调用方法、装置、移动终端及存储介质 |
JP7115342B2 (ja) * | 2019-01-31 | 2022-08-09 | 日本電信電話株式会社 | デバッグ支援システムおよびデバッグ支援方法 |
WO2021070293A1 (ja) * | 2019-10-09 | 2021-04-15 | 日本電信電話株式会社 | 情報連携システムおよび情報連携方法 |
WO2022030025A1 (ja) * | 2020-08-07 | 2022-02-10 | 日本電信電話株式会社 | 表示制御装置、表示制御方法および表示制御プログラム |
WO2023238261A1 (ja) * | 2022-06-07 | 2023-12-14 | 日本電信電話株式会社 | 表示制御装置、表示制御方法、および、表示制御プログラム |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4428952B2 (ja) * | 2003-07-14 | 2010-03-10 | キヤノン株式会社 | ユーザインタフェース制御装置及びその方法 |
JP2011113297A (ja) * | 2009-11-26 | 2011-06-09 | Canon Inc | ページ上に注釈情報を追加可能とする中継サーバ |
JP5814284B2 (ja) * | 2013-03-22 | 2015-11-17 | ヤフー株式会社 | 端末装置、表示方法、表示制御プログラム及びサーバ装置 |
JP2015138541A (ja) * | 2014-01-26 | 2015-07-30 | UiMaker株式会社 | ウェブ・コンテンツ生成システム |
US20170315971A1 (en) * | 2014-10-06 | 2017-11-02 | Symmetric Co., Ltd. | Program for displaying webpage, terminal device, and server device |
-
2016
- 2016-06-28 JP JP2016127985A patent/JP6557184B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JP2018005344A (ja) | 2018-01-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6557184B2 (ja) | 機能拡張システム、機能拡張方法および機能拡張プログラム | |
JP4395178B2 (ja) | コンテンツ処理システム、方法及びプログラム | |
CN108038134B (zh) | 页面展示的方法、装置和存储介质以及电子设备 | |
US9460292B2 (en) | Dynamic rendering of a document object model | |
RU2459238C2 (ru) | Управляемая среда выполнения для организации взаимодействия между программными приложениями | |
US20150169434A1 (en) | White-box testing systems and/or methods in web applications | |
US10333991B2 (en) | Web browser policy for HTTP-based application | |
JP2008140194A (ja) | コンピュータ用アプリケーション・プログラムの作成システム、方法、及びプログラム | |
KR20100112123A (ko) | 안전하고 확장 가능한 정책 기반 애플리케이션 플랫폼 | |
EP2642718B1 (en) | Dynamic rendering of a document object model | |
US8904492B2 (en) | Method of controlling information processing system, computer-readable recording medium storing program for controlling apparatus | |
US11586726B2 (en) | Secure web framework | |
US20190052542A1 (en) | System and method for providing visualizations of computing infrastructure using a domain-specific language for cloud services infrastructure | |
Niemietz | Ui redressing: Attacks and countermeasures revisited | |
CN110806868A (zh) | 一种单页面搭建及加载方法 | |
US10664648B2 (en) | Webpage rendering using a remotely generated layout node tree | |
US20140033086A1 (en) | Secure content-specific application user interface components | |
US11314834B2 (en) | Delayed encoding of resource identifiers | |
Mansfield-Devine | Divide and conquer: the threats posed by hybrid apps and HTML 5 | |
Cannon et al. | Enforcing security for desktop clients using authority aspects | |
JP2013125497A (ja) | 情報処理装置、情報処理方法およびプログラム | |
Břoušek | Evaluation and Usage of Google Progressive Web Apps Technology | |
JP2018014603A (ja) | 情報処理装置、情報処理装置の制御方法、及びプログラム | |
Carneiro | Platform to manage cookies | |
Whitcomb | Monarch: A Reimagined Browser for the Modern Web |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20180607 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20190130 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20190205 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20190403 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20190416 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20190614 |
|
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: 20190709 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20190711 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6557184 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |