Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP6901997B2 - プログラムの実行制御方法、プログラム、記録媒体、ウェブページ、送信サーバ、クライアントおよびウェブシステム - Google Patents
[go: Go Back, main page]

JP6901997B2 - プログラムの実行制御方法、プログラム、記録媒体、ウェブページ、送信サーバ、クライアントおよびウェブシステム - Google Patents

プログラムの実行制御方法、プログラム、記録媒体、ウェブページ、送信サーバ、クライアントおよびウェブシステム Download PDF

Info

Publication number
JP6901997B2
JP6901997B2 JP2018105036A JP2018105036A JP6901997B2 JP 6901997 B2 JP6901997 B2 JP 6901997B2 JP 2018105036 A JP2018105036 A JP 2018105036A JP 2018105036 A JP2018105036 A JP 2018105036A JP 6901997 B2 JP6901997 B2 JP 6901997B2
Authority
JP
Japan
Prior art keywords
program
identification information
server
web
list
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
Application number
JP2018105036A
Other languages
English (en)
Other versions
JP2019211849A (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.)
Fujifilm Corp
Original Assignee
Fujifilm Corp
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 Fujifilm Corp filed Critical Fujifilm Corp
Priority to JP2018105036A priority Critical patent/JP6901997B2/ja
Priority to US16/426,104 priority patent/US11212287B2/en
Publication of JP2019211849A publication Critical patent/JP2019211849A/ja
Application granted granted Critical
Publication of JP6901997B2 publication Critical patent/JP6901997B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/955Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
    • G06F16/9558Details of hyperlinks; Management of linked annotations
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/955Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
    • G06F16/9566URL specific, e.g. using aliases, detecting broken or misspelled links
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/101Access control lists [ACL]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/126Applying verification of the received information the source of the received data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Power Engineering (AREA)
  • Information Transfer Between Computers (AREA)

Description

本発明は、送信サーバから送信され、クライアントにおいて受信されるウェブページに含まれ、クライアントのウェブブラウザにおいて実行されるウェブアプリケーションのプログラムの実行制御方法、プログラム、記録媒体、ウェブページ、送信サーバ、クライアントおよびウェブシステムに関する。
例えば、画像(写真)の補正処理等の画像処理を行う場合、従来は、ユーザが画像処理を行う専用プログラムをクライアントにインストールし、その専用プログラムを利用して画像処理が行われていた。あるいは、図8の概念図に示すように、ユーザが画像をクライアント34から画像処理の専用サーバ32へアップロードし、専用サーバ32において画像処理プログラムにより画像処理が行われた後、画像処理後の画像が専用サーバ32からクライアント34にダウンロードされていた。
しかし、専用プログラムを使用する手法は、専用プログラムをクライアントにインストールするのが面倒であるという理由から、ユーザが専用プログラムを使用するのを躊躇する場合があった。また、専用サーバ32を利用する手法では、画像のアップロードおよびダウンロードをする必要があるため、応答性が低く、画像のアップロードおよびダウンロードのための通信コストの他、専用サーバ32も必要であり、コストが高いという問題があった。
これに対し、現在では、クライアントのウェブブラウザにおいて、画像処理のためのウェブアプリケーションのプログラムを使用してウェブブラウザにおいて画像処理を行うことができるようになってきた。
この手法は、図9の概念図に示すように、ユーザがクライアント34のウェブブラウザにおいて画像処理プログラムにより画像処理を行うことができるため、画像のアップロードおよびダウンロードが不要であり、応答性が高いという利点がある。また、画像のアップロードおよびダウンロードのための通信コストの他、画像処理を行うための専用サーバ32も不要であるため、コストが低いという利点がある。
しかし、ウェブアプリケーションのプログラムをウェブブラウザ上で動作させる手法の場合、図10に示すように、ウェブページを閲覧可能なユーザであれば誰でも、ウェブアプリケーションのプログラムを含むウェブページを、ウェブページの送信サーバ42からクライアント34にダウンロードすることができる。そのため、悪意のある第三者によって、ウェブページからウェブアプリケーションのプログラムが抜き出されて盗難され、不正流用されるという危険性があった。例えば、悪意のある第三者の送信サーバ52を使用して、不正流用されたウェブアプリケーションのプログラムが配信(送信)される。
ここで、本発明に関連性があると考えられる先行技術文献として、特許文献1〜4がある。
特許文献1には、送信元識別子が関連付けされたアプリケーション・プログラムを送信元コンピュータから受信し、送信元識別子に基づいて、アプリケーション・プログラムを使用するサーバがアクセスできる資源を判定してアクセス特権を許可し、サーバのメモリ内の決められた所定の位置にアプリケーション・プログラムをロードする方法等が記載されている。
特許文献2には、抽象化を有するサーバサイドプログラムを生成し、抽象化を含むサーバサイドプログラムをセキュリティ基準に関して安全な方法で実行するように保証される目的コードに変換することによって、サーバサイドプログラムをコンパイルするものであって、コンパイル中にセキュリティ基準を強制実行するようにセキュリティ検査を挿入する方法等が記載されている。
特許文献3には、起動時またはバックグラウンド処理からの復帰時に、オペレーティングシステムに対してオペレーティングシステムが組込んだデータの検査結果を要求し、その検査結果が、データが正規ではないことを示す場合に、所定の画面の表示を禁止して、正規のデータをオペレーティングシステムに組込む、アプリケーションプログラムが記載されている。
特許文献4には、アプリケーションの起動が検出された場合、そのアプリケーションが、利用制限の対象とされた制限対象アプリケーションか否かを判定し、制限対象アプリケーションであると判定された場合、所定のメッセージ画面を繰り返しまたは継続的に表示させて、制限対象アプリケーションを実質的に利用することができない状態にする、アプリケーションの利用制限用プログラムが記載されている。
特表2002−503364号公報 特許第5409620号公報 国際公開第2015/190371号 特開2016−162263号公報
本発明の目的は、ウェブアプリケーションのプログラムを悪意のある第三者による不正流用から守ることができるプログラムの実行制御方法、プログラム、記録媒体、ウェブページ、送信サーバ、クライアントおよびウェブシステムを提供することにある。
上記目的を達成するために、本発明は、送信サーバから送信され、クライアントにおいて受信されるウェブページに含まれ、クライアントのウェブブラウザにおいて実行されるウェブアプリケーションのプログラムの実行制御方法であって、
ウェブアプリケーションのプログラムは、低級言語により記述される、ウェブアプリケーションのプログラムの配信が許可された許可サーバの識別情報のリスト、送信サーバが許可サーバであるか否かを判定する判定プログラム、および、判定プログラム以外の処理を実行する1以上の処理プログラムを含み、
プログラムの実行制御方法は、判定プログラムが、
ウェブページのURIを取得する第1ステップと、
ウェブページのURIから送信サーバの識別情報を抽出する第2ステップと、
送信サーバの識別情報とリストに含まれる許可サーバの識別情報とが一致するか否かを照合する第3ステップと、
照合の結果に応じて、1以上の処理プログラムの実行を制限する第4ステップと、を含む、プログラムの実行制御方法を提供する。
ここで、第3ステップは、送信サーバの識別情報とリストに含まれる許可サーバの識別情報とが一致する場合に、1以上の処理プログラムの一部または全部の実行を許可し、送信サーバの識別情報とリストに含まれる許可サーバの識別情報とが一致しない場合に、1以上の処理プログラムの実行を許可しないことが好ましい。
また、第3ステップは、送信サーバの識別情報に応じて、1以上の処理プログラムの一部の実行を許可するか、1以上の処理プログラムの全部の実行を許可するかを決定することが好ましい。
判定プログラムは、さらに、送信サーバの識別情報とリストに含まれる許可サーバの識別情報とが一致しない場合に、判定プログラムの実行を強制終了させる第5ステップを含むことが好ましい。
判定プログラムは、さらに、送信サーバの識別情報とリストに含まれる許可サーバの識別情報とが一致しない場合に、URIを取得したウェブページから他のウェブページへリダイレクトさせる第5ステップを含むことが好ましい。
また、第3ステップは、送信サーバの識別情報とリストに含まれる許可サーバの識別情報とが完全に一致するか否かを照合することが好ましい。
また、リストに含まれる許可サーバの識別情報は、許可サーバの識別情報を表す文字列であり、
第3ステップは、送信サーバの識別情報の文字列とリストに含まれる許可サーバの識別情報の文字列とが一致するか否かを照合することが好ましい。
また、リストに含まれる許可サーバの識別情報は、許可サーバの識別情報を表す文字列に対応するハッシュ値であり、
第3ステップは、送信サーバの識別情報から算出されるハッシュ値とリストに含まれる許可サーバの識別情報のハッシュ値とが一致するか否かを照合することが好ましい。
また、リストに含まれる許可サーバの識別情報は、許可サーバの識別情報を表す文字列が暗号化されたものであり、
第3ステップは、送信サーバの識別情報の文字列とリストに含まれる許可サーバの識別情報の暗号化された文字列から復号化される許可サーバの識別情報の文字列とが一致するか否かを照合することが好ましい。
また、識別情報はドメイン名であることが好ましい。
また、リストは、許可サーバのドメイン名およびディレクトリ名を含み、
第3ステップは、送信サーバのドメイン名およびディレクトリ名とリストに含まれる許可サーバのドメイン名およびディレクトリ名とが一致するか否かを照合することが好ましい。
また、第3ステップは、送信サーバのドメイン名のうちの組織名を含む一部のドメイン名とリストに含まれる許可サーバのドメイン名のうちの組織名を含む一部のドメイン名とが一致するか否かを照合することが好ましい。
また、低級言語はアセンブリ言語であることが好ましい。
また、アセンブリ言語はWebAssemblyのアセンブリ言語であることが好ましい。
また、本発明は、上記のウェブアプリケーションのプログラムであって、クライアントのウェブブラウザにおいて、判定プログラムの各々のステップをコンピュータに実行させる、ウェブアプリケーションのプログラムを提供する。
また、本発明は、上記のウェブアプリケーションのプログラムが記録されたコンピュータ読み取り可能な記録媒体であって、クライアントのウェブブラウザにおいて、判定プログラムの各々のステップをコンピュータに実行させるウェブアプリケーションのプログラムが記録された、記録媒体を提供する。
また、本発明は、上記のウェブアプリケーションのプログラムを含み、送信サーバから送信され、クライアントにおいて受信され、クライアントのウェブブラウザにおいて表示される、ウェブページを提供する。
また、本発明は、上記のウェブアプリケーションのプログラムを含むウェブページの送信要求をクライアントから受信し、送信要求に対応するウェブページを、送信要求を送信したクライアントに送信する、送信サーバを提供する。
また、本発明は、上記のウェブアプリケーションのプログラムを含むウェブページの送信要求を送信サーバに送信し、送信サーバから送信されてくる、送信要求に対応するウェブページを受信してウェブブラウザにおいて表示し、ウェブアプリケーションのプログラムをウェブブラウザにおいて実行する、クライアントを提供する。
また、本発明は、上記の1以上の送信サーバと、上記の1以上のクライアントと、を備える、ウェブシステムを提供する。
本発明によれば、リスト、判定プログラムおよび1以上の処理プログラムが、人間が理解しにくい低級言語によって記述されている。従って、悪意のある第三者がウェブアプリケーションのプログラムを解析するのが難しく、改竄が困難であり、ウェブページからウェブアプリケーションのプログラムを抜き出して盗難するのが困難であるため、ウェブアプリケーションのプログラムを悪意のある第三者による不正流用から守ることができる。
本発明に係るウェブシステムの構成を表す一実施形態のブロック図である。 図1に示すウェブシステムの動作を表す一実施形態のフローチャートである。 図2に続く、ウェブシステムの動作を表す一実施形態のフローチャートである。 本発明に係るウェブアプリケーションのプログラムの構成を表す一実施形態の概念図である。 ドメイン名が一致する場合のウェブシステムの動作を表す一実施形態の概念図である。 ドメイン名が一致しない場合のウェブシステムの動作を表す一実施形態の概念図である。 ウェブアプリケーションのプログラムの別の構成を表す一例の概念図である。 従来のウェブシステムの動作を表す一例の概念図である。 従来のウェブシステムの動作を表す別の例の概念図である。 ウェブアプリケーションが不正流用される際の動作を表す一例の概念図である。
以下に、添付の図面に示す好適実施形態に基づいて、本発明のプログラムの実行制御方法、プログラム、記録媒体、ウェブページ、送信サーバ、クライアントおよびウェブシステムを詳細に説明する。
図1は、本発明に係るウェブシステムの構成を表す一実施形態のブロック図である。図1に示すウェブシステム10は、送信サーバ12と、1以上のクライアント14と、を備えている。ウェブシステム10は、インターネット等の通信回線16を介して、送信サーバ12から送信され、クライアント14において受信されるウェブページをクライアント14のウェブブラウザにおいて表示し、さらに、ウェブページに含まれる本発明に係るウェブアプリケーションのプログラムをウェブブラウザにおいて実行する。
送信サーバ12は、ウェブページの送信要求をクライアント14から受信し、送信要求に対応するウェブページ(ウェブページのデータ)を、送信要求を送信したクライアント14に送信する。送信サーバ12としては、ウェブページを配信する機能を備える各種のコンピュータ、例えばワークステーション等を例示することができる。なお、1以上の送信サーバ12を備えていてもよい。
一方、クライアント14は、ウェブページの送信要求を送信サーバ12に送信し、送信サーバ12から送信されてくる、送信要求に対応するウェブページを受信してウェブブラウザにおいて表示し、さらにウェブページに含まれる本発明のウェブアプリケーションのプログラムをウェブブラウザにおいて実行する。クライアント14は、ウェブページの送信要求として、ウェブページのアドレスを表すURI(Uniform Resource Identifier)を送信サーバ12へ送信する。クライアント14としては、ウェブページを閲覧する機能を備える各種のコンピュータ、例えばデスクトップPC(Personal Computer:パーソナルコンピュータ)、ノートPC、タブレットPC、スマートフォン等を例示することができる。
URIは、例えば「http://www.xxx.co.jp/yyy/」のように表記される。URIにおいて、「http」は通信プロトコルを表し、「www」はホスト名を表す。「xxx.co.jp」はドメイン名を表し、そのうちの「xxx」は組織名、「co」は、組織の種別を表すセカンドレベルドメイン名、「jp」は、国、地域、使用目的、および使用する組織等を表すトップレベルドメイン名である。「yyy」はディレクトリ名を表す。なお、URIの中には、「http://xxx.co.jp/」のようにホスト名がないもの、および「http://www.xxx.jp/」のようにセカンドレベルドメイン名がないものなどもある。
ウェブページは、クライアント14からの送信要求に応じて送信サーバ12から送信され、クライアント14において受信され、クライアント14のウェブブラウザにおいて表示される。ウェブページには、図4の概念図に示すように、ハイパーテキストを記述するためのマークアップ言語であるHTML(HyperText Markup Language)によって記述されたプログラム(以下、HTMLのプログラムともいう)18、後述するスクリプト言語であるJavaScript(登録商標、以下同様)によって記述されたプログラム(以下、JavaScriptのプログラムともいう)20、画像等の他、本発明に係るウェブアプリケーションのプログラム、つまり、後述するWebAssemblyのアセンブリ言語によって記述されたプログラム(以下、WebAssemblyのプログラムともいう)22等が含まれている。
本発明のウェブアプリケーションのプログラムは、クライアント14のウェブブラウザにおいて実行されるものであり、図4の概念図に示すように、本発明のウェブアプリケーションのプログラムの配信(送信)が許可された許可サーバ(送信サーバ)のドメイン名のリスト24、送信サーバ12が許可サーバであるか否かを判定する判定プログラム26、および、画像処理等のように、判定プログラム26以外の処理を実行する1以上の処理プログラム28等を含む。また、本発明のウェブアプリケーションのプログラムのうち、少なくともリスト24、判定プログラム26および1以上の処理プログラム28は、低級言語(低水準言語)により記述されている。
なお、許可サーバのドメイン名は、許可サーバのドメイン名を表す文字列(テキストフォーマット)でもよいし、許可サーバのドメイン名を表す文字列に対応するハッシュ値でもよいし、あるいは許可サーバのドメイン名を表す文字列が暗号化されたものでもよい。
低級言語は、コンピュータを動作させるためのプログラムを記述するプログラミング言語のうち、人間が理解しにくい命令セットによって記述されるプログラミング言語である。低級言語には、コンピュータが命令(バイナリフォーマット)の内容を直接理解して実行できる機械語、および機械語の命令(バイナリフォーマット)に1対1に対応する名称(ニーモニック)の命令(テキストフォーマット)によって記述されるアセンブリ言語等が含まれる。
これに対し、高級言語(高水準言語)は、プログラミング言語のうち、低級言語よりも人間が理解しやすい構文(テキストフォーマット)等によって記述されるプログラミング言語である。高級言語には、プログラムの動作および機能等を記述できるスクリプト言語等が含まれる。
また、ウェブアプリケーションのプログラムを記述するための低級言語としては、各種のアセンブリ言語が使用される。現在では、アセンブリ言語として代表的なものは、WebAssemblyのアセンブリ言語である。一方、高級言語としては、各種のスクリプト言語が使用される。現在、スクリプト言語として代表的なものは、JavaScriptのスクリプト言語である。
WebAssemblyは、WWW(World Wide Web)技術の標準化を推進する国際的なコミュニティであるW3C(The World Wide Web Consortium)のW3C WebAssembly Community Groupによりオープン標準として策定され、ウェブブラウザにおいて、バイナリフォーマットのウェブアプリケーションのプログラムを、機械語(ネイティブアプリケーション)レベルの速度で高速動作させることができる。
WebAssemblyは、代表的なウェブブラウザに標準技術として搭載されており、プラグインなどの追加のプログラムのインストールが不要である、C/C++等の他のスクリプト言語からWebAssemblyのアセンブリ言語への変換が可能であり、既存のプログラム資産を流用可能である、プログラムのサイズが小さい、オペレーティングシステムが異なるプラットフォームにおいても実行可能である、等の特徴を備えている。
WebAssemblyを利用することにより、従来は専用サーバおよび専用プラグイン等が必要であったアプリケーションのプログラムをウェブブラウザだけで実行させることができるようになる可能性がある。WebAssemblyの利用分野としては、ゲーム等のように、高い応答性が求められるアプリケーション、および画像処理等のように、複雑で処理に時間がかかるアプリケーションなどが想定される。
JavaScriptは、情報通信システムの分野における国際的な標準化団体であるEcma InternationalによりECMAScript(ECMA-262)として標準化され、ウェブページ内において、動きの要素、各種の効果およびユーザとの対話機能等を実現することができる。
JavaScriptによって実現される処理が複雑化すると、JavaScriptの実行速度の遅さおよびデータサイズの大きさが問題になってきた。WebAssemblyは、このようなJavaScriptの問題を解決するために開発されたものであり、アセンブリ言語によって記述されるため、スクリプト言語によって記述されるJavaScriptよりも、その実行速度が早く、かつデータサイズも小さいという特徴がある。
次に、図2に示すフローチャートを参照し、本発明に係るプログラムの実行制御方法に従ってウェブシステム10の動作を説明する。まず、ウェブページがクライアント14のウェブブラウザにおいて表示されるまでの動作を説明する。
ユーザにより、ウェブページのURIがクライアント14のウェブブラウザのアドレスバーに入力される(ステップS1)。なお、ウェブページのURIは、改竄不可能である、あるいは改竄することは極めて難しいと考えられる。
ウェブページのURIが入力されると、そのURIが、ウェブページの送信要求としてクライアント14から送信サーバ12に送信され(ステップS2)、送信サーバ12において受信される(ステップS3)。
ウェブページの送信要求が送信サーバ12において受信されると、その送信要求に対応するウェブページが送信サーバ12から送信要求を送信したクライアント14に送信され(ステップS4)、送信要求を送信したクライアント14において受信される(ステップS5)。
ウェブページがクライアント14において受信されると、そのウェブページが、クライアント14のウェブブラウザにおいて表示される(ステップS6)。
続いて、図3のフローチャートおよび図4の概念図を参照して、ウェブページがクライアント14のウェブブラウザにおいて表示された後のウェブシステム10の動作、つまり、本発明に係るウェブアプリケーションのプログラムの動作を説明する。
図3のフローチャートにおいて、左側部分は、ウェブブラウザにおける動作、つまり、HTMLのプログラム18の動作を表す。また、中央部分は、JavaScriptのプログラム20の動作を表し、右側部分は、WebAssemblyのプログラム22の動作を表す。また、図4の概念図において、左側部分は、HTMLのプログラム18の役割を表す。また、中央部分は、JavaScriptのプログラム20の役割を表し、右側部分は、WebAssemblyのプログラム22の役割を表す。
ウェブページがクライアント14のウェブブラウザにおいて表示された後(ステップS6)、ウェブページに含まれる本発明のウェブアプリケーションのプログラム、つまり、WebAssemblyのプログラム22が実行される。この場合、まず、JavaScriptのプログラム20によりWebAssemblyのプログラム22の評価プログラムの初期化が行われる(ステップS7)。
初期化が終了すると、判定プログラム26が実行され、まず、ウェブブラウザのアドレスバーに入力されたウェブページのURIが取得される(ステップS8)。WebAssemblyのプログラム22は、図4の概念図に示すように、HTMLのプログラム18とWebAssemblyのプログラム22との間を仲介する役割を果たすJavaScriptのプログラム20を経由して、HTMLのプログラム18からウェブページのURIを取得する。
続いて、ステップS8において取得されたウェブページのURIから送信サーバ12のドメイン名が抽出される(ステップS9)。
ドメイン名が抽出されると、図4の概念図の右側部分に示すように、ステップS9において抽出された送信サーバ12のドメイン名(実行ドメイン名)と、前述のリスト24に含まれる許可サーバのドメイン名(許可ドメイン名)とが一致するか否かが照合される(ステップS10)。
ステップS10におけるドメイン名の照合の結果に応じて、前述の1以上の処理プログラム28の実行が制限される。
例えば、送信サーバ12のドメイン名とリスト24に含まれる許可サーバのドメイン名とが一致する場合に、クライアント14のウェブブラウザにおいて1以上の処理プログラム28の一部または全部の実行が許可される。一方、送信サーバ12のドメイン名とリスト24に含まれる許可サーバのドメイン名とが一致しない場合に、クライアント14のウェブブラウザにおいて1以上の処理プログラム28の実行が許可されない(禁止される)。
その結果、送信サーバ12のドメイン名とリスト24に含まれる許可サーバのドメイン名とが一致しない場合(ステップS11において「NO」)に、1以上の処理プログラム28の実行は許可されず、判定プログラム26の実行、つまり、ウェブアプリケーションの実行が強制終了される(ステップS12)。
なお、判定プログラム26の実行を強制終了させる代わりに、URIを取得したウェブページから他のウェブページへリダイレクトさせてもよい。リダイレクトされた他のウェブページには、どこのウェブページからリダイレクトされてきたかというリダイレクト元のウェブページの情報を持たせることができるため、この情報を利用して、ウェブアプリケーションのプログラムを不正流用している、悪意のある第三者のウェブサイトを容易に特定することができる。
一方、送信サーバ12のドメイン名とリスト24に含まれる許可サーバのドメイン名とが一致する場合(ステップS11において「YES」)に、クライアント14のウェブブラウザにおいて、1以上の処理プログラム28の一部または全部の実行が許可される。この場合、1以上の処理プログラム28が初期化された後(ステップS13)、ユーザが、そのユーザのクライアント14のウェブブラウザ上において1以上の処理プログラム28に対して操作を行うと(ステップS14)と、ユーザの操作に従って、ウェブブラウザにおいて1以上の処理プログラム28が実行され(ステップS15)、その実行結果が、ウェブブラウザにおいて表示される(ステップS16)。
図5の概念図に示すように、例えばリスト24に含まれる許可サーバのドメイン名が「fujifilm.jp」であり、送信サーバ12のドメイン名が許可サーバのドメイン名と同じ「fujifilm.jp」であれば、クライアント14のウェブブラウザにおいて、1以上の処理プログラム28は実行可能である。一方、図6の概念図に示すように、送信サーバ12のドメイン名が許可サーバのドメイン名とは異なり、例えば「bujifilm.jp」であれば、クライアント14のウェブブラウザにおいて、1以上の処理プログラム28は実行できない。
ウェブシステム10においては、リスト24、判定プログラム26および1以上の処理プログラム28が、人間が理解しにくいWebAssemblyのアセンブリ言語等の低級言語によって記述されている。従って、悪意のある第三者がウェブアプリケーションのプログラムを解析するのが難しく、改竄が困難であり、ウェブページからウェブアプリケーションのプログラムを抜き出して盗難するのが困難であるため、ウェブアプリケーションのプログラムを悪意のある第三者による不正流用から守ることができる。
これに対し、図7の概念図に示すように、例えばリスト24および判定プログラム26をJavaScriptのスクリプト言語によって記述し、1以上の処理プログラム28をWebAssemblyのアセンブリ言語等の低級言語によって記述することが考えられる。この場合、判定プログラム26は、人間が理解しやすいスクリプト言語によって記述されている。従って、悪意のある第三者が判定プログラム26を解析して改竄するのが容易であり、ウェブページからウェブアプリケーションのプログラムを抜き出して盗難するのが容易であるため、ウェブアプリケーションのプログラムを悪意のある第三者による不正流用から守ることは難しい。
なお、送信サーバ12のドメイン名に応じて、1以上の処理プログラム28の一部の実行を許可するか、1以上の処理プログラム28の全部の実行を許可するかを決定してもよい。
例えば、ドメイン名が「xxx」である場合、1以上の処理プログラム28の一部のみの実行を許可し、ドメイン名が「zzz」である場合、1以上の処理プログラム28の全部の実行を許可するというように、ドメイン名に応じて1以上の処理プログラム28の一部のみまたは全部の実行を制御することができる。
また、リスト24の中に、許可サーバのドメイン名およびディレクトリ名を含めておき、送信サーバ12のドメイン名およびディレクトリ名とリスト24に含まれる許可サーバのドメイン名およびディレクトリ名とが一致するか否かを照合してもよい。これにより、ドメイン名だけでなくディレクトリ名まで一致していなければ、ウェブアプリケーションのプログラムを配信することができないようにすることができ、悪意のある第三者がウェブアプリケーションのプログラムを解析するのを難しくすることができる。
例えば、URIが「http://www.xxx.co.jp/yyy/」である場合、ドメイン名およびディレクトリ名を含めて「www.xxx.co.jp/yyy/」が一致するか否かを照合してもよい。
また、ドメイン名を照合する場合、送信サーバ12のドメイン名とリスト24に含まれる許可サーバのドメイン名とが完全に一致するか否かを照合してもよいし、あるいは送信サーバ12のドメイン名のうちの組織名を含む一部のドメイン名とリスト24に含まれる許可サーバのドメイン名のうちの組織名を含む一部のドメイン名とが一致するか否かを照合してもよい。
上記のURIの場合、例えばドメイン名である「xxx.co.jp」が完全に一致するか否かを照合してもよい。あるいは、組織名である「xxx」が一致するか否か、「xxx.co」が一致するか否か、または「xxx」および「jp」が一致するか否か等を照合してもよい。
また、ドメイン名を照合する場合、送信サーバ12のドメイン名の文字列とリスト24に含まれる許可サーバのドメイン名の文字列とが一致するか否かを照合してもよいし、送信サーバ12のドメイン名から算出されるハッシュ値とリスト24に含まれる許可サーバのドメイン名のハッシュ値とが一致するか否かを照合してもよいし、あるいは送信サーバ12のドメイン名の文字列とリスト24に含まれる許可サーバのドメイン名の暗号化された文字列から復号化される許可サーバのドメイン名の文字列とが一致するか否かを照合してもよい。ハッシュ値または暗号化された文字列を用いることにより、悪意のある第三者によって許可サーバのドメイン名が解析されるのをより困難にすることができる。
なお、本発明に関わる識別情報として、ドメイン名を使用する具体例を挙げて説明したが、識別情報はドメイン名に限らず、送信サーバ12が許可サーバであるか否かを識別することができるものであれば、どのような識別情報を使用してもよい。
また、本発明に係るウェブアプリケーションのプログラムは、WebAssemblyのアセンブリ言語に限らず、例えば、PNaCl(Portable Native Client)等のように、各種の低級言語によって記述することができる。
また、本発明は、例えば画像の補正処理等の画像処理、および複数の画像をレイアウトしてフォトアルバムを作成する処理等において好適に利用可能であるが、これに限らず、各種のウェブアプリケーションのプログラムにおいても同様に適用可能である。
本発明の方法は、上記のウェブアプリケーションのプログラムであって、クライアント14のウェブブラウザにおいて、判定プログラム26の各々のステップをコンピュータに実行させるための本発明に係るウェブアプリケーションのプログラムにより実施することができる。また、本発明のウェブアプリケーションのプログラムが記録されたコンピュータ読み取り可能な記録媒体を提供することもできる。
以上、本発明について詳細に説明したが、本発明は上記実施形態に限定されず、本発明の主旨を逸脱しない範囲において、種々の改良や変更をしてもよいのはもちろんである。
10 ウェブシステム
12、42、52 送信サーバ
14、34 クライアント
16 通信回線
18 HTMLのプログラム
20 JavaScriptのプログラム
22 WebAssemblyのプログラム
24 許可サーバのドメイン名のリスト
26 判定プログラム
28 処理プログラム
32 専用サーバ

Claims (20)

  1. 送信サーバから送信され、クライアントにおいて受信されるウェブページに含まれ、前記クライアントのウェブブラウザにおいて実行されるウェブアプリケーションのプログラムの実行制御方法であって、
    前記ウェブアプリケーションのプログラムは、低級言語により記述される、前記ウェブアプリケーションのプログラムの配信が許可された許可サーバの識別情報のリスト、前記送信サーバが前記許可サーバであるか否かを判定する判定プログラム、および、前記判定プログラム以外の処理を実行する1以上の処理プログラムを含み、
    前記プログラムの実行制御方法は、前記判定プログラムが、
    前記ウェブページのURIを取得する第1ステップと、
    前記ウェブページのURIから前記送信サーバの識別情報を抽出する第2ステップと、
    前記送信サーバの識別情報と前記リストに含まれる許可サーバの識別情報とが一致するか否かを照合する第3ステップと、
    前記照合の結果に応じて、前記1以上の処理プログラムの実行を制限する第4ステップと、を含む、プログラムの実行制御方法。
  2. 前記第3ステップは、前記送信サーバの識別情報と前記リストに含まれる許可サーバの識別情報とが一致する場合に、前記1以上の処理プログラムの一部または全部の実行を許可し、前記送信サーバの識別情報と前記リストに含まれる許可サーバの識別情報とが一致しない場合に、前記1以上の処理プログラムの実行を許可しない、請求項1に記載のプログラムの実行制御方法。
  3. 前記第3ステップは、前記送信サーバの識別情報に応じて、前記1以上の処理プログラムの一部の実行を許可するか、前記1以上の処理プログラムの全部の実行を許可するかを決定する、請求項2に記載のプログラムの実行制御方法。
  4. 前記判定プログラムは、さらに、前記送信サーバの識別情報と前記リストに含まれる許可サーバの識別情報とが一致しない場合に、前記判定プログラムの実行を強制終了させる第5ステップを含む、請求項2または3に記載のプログラムの実行制御方法。
  5. 前記判定プログラムは、さらに、前記送信サーバの識別情報と前記リストに含まれる許可サーバの識別情報とが一致しない場合に、前記URIを取得したウェブページから他のウェブページへリダイレクトさせる第5ステップを含む、請求項2または3に記載のプログラムの実行制御方法。
  6. 前記第3ステップは、前記送信サーバの識別情報と前記リストに含まれる許可サーバの識別情報とが完全に一致するか否かを照合する、請求項1ないし5のいずれか一項に記載のプログラムの実行制御方法。
  7. 前記リストに含まれる許可サーバの識別情報は、前記許可サーバの識別情報を表す文字列であり、
    前記第3ステップは、前記送信サーバの識別情報の文字列と前記リストに含まれる許可サーバの識別情報の文字列とが一致するか否かを照合する、請求項1ないし6のいずれか一項に記載のプログラムの実行制御方法。
  8. 前記リストに含まれる許可サーバの識別情報は、前記許可サーバの識別情報を表す文字列に対応するハッシュ値であり、
    前記第3ステップは、前記送信サーバの識別情報から算出されるハッシュ値と前記リストに含まれる許可サーバの識別情報のハッシュ値とが一致するか否かを照合する、請求項1ないし6のいずれか一項に記載のプログラムの実行制御方法。
  9. 前記リストに含まれる許可サーバの識別情報は、前記許可サーバの識別情報を表す文字列が暗号化されたものであり、
    前記第3ステップは、前記送信サーバの識別情報の文字列と前記リストに含まれる許可サーバの識別情報の暗号化された文字列から復号化される許可サーバの識別情報の文字列とが一致するか否かを照合する、請求項1ないし6のいずれか一項に記載のプログラムの実行制御方法。
  10. 前記識別情報はドメイン名である、請求項1ないし9のいずれか一項に記載のプログラムの実行制御方法。
  11. 前記リストは、前記許可サーバのドメイン名およびディレクトリ名を含み、
    前記第3ステップは、前記送信サーバのドメイン名およびディレクトリ名と前記リストに含まれる許可サーバのドメイン名およびディレクトリ名とが一致するか否かを照合する、請求項10に記載のプログラムの実行制御方法。
  12. 前記第3ステップは、前記送信サーバのドメイン名のうちの組織名を含む一部のドメイン名と前記リストに含まれる許可サーバのドメイン名のうちの組織名を含む一部のドメイン名とが一致するか否かを照合する、請求項10または11に記載のプログラムの実行制御方法。
  13. 前記低級言語はアセンブリ言語である、請求項1ないし12のいずれか一項に記載のプログラムの実行制御方法。
  14. 前記アセンブリ言語はWebAssemblyのアセンブリ言語である、請求項13に記載のプログラムの実行制御方法。
  15. 請求項1ないし14のいずれか一項に記載のウェブアプリケーションのプログラムであって、前記クライアントのウェブブラウザにおいて、前記判定プログラムの各々のステップをコンピュータに実行させる、ウェブアプリケーションのプログラム。
  16. 請求項1ないし14のいずれか一項に記載のウェブアプリケーションのプログラムが記録されたコンピュータ読み取り可能な記録媒体であって、前記クライアントのウェブブラウザにおいて、前記判定プログラムの各々のステップをコンピュータに実行させるウェブアプリケーションのプログラムが記録された、記録媒体。
  17. 請求項15に記載のウェブアプリケーションのプログラムを含み、前記送信サーバから送信され、前記クライアントにおいて受信され、前記クライアントのウェブブラウザにおいて表示される、ウェブページ。
  18. 請求項15に記載のウェブアプリケーションのプログラムを含むウェブページの送信要求を前記クライアントから受信し、前記送信要求に対応する前記ウェブページを、前記送信要求を送信した前記クライアントに送信する、送信サーバ。
  19. 請求項15に記載のウェブアプリケーションのプログラムを含むウェブページの送信要求を前記送信サーバに送信し、前記送信サーバから送信されてくる、前記送信要求に対応する前記ウェブページを受信して前記ウェブブラウザにおいて表示し、前記ウェブアプリケーションのプログラムを前記ウェブブラウザにおいて実行する、クライアント。
  20. 請求項18に記載の1以上の送信サーバと、請求項19に記載の1以上のクライアントと、を備える、ウェブシステム。
JP2018105036A 2018-05-31 2018-05-31 プログラムの実行制御方法、プログラム、記録媒体、ウェブページ、送信サーバ、クライアントおよびウェブシステム Active JP6901997B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2018105036A JP6901997B2 (ja) 2018-05-31 2018-05-31 プログラムの実行制御方法、プログラム、記録媒体、ウェブページ、送信サーバ、クライアントおよびウェブシステム
US16/426,104 US11212287B2 (en) 2018-05-31 2019-05-30 Program execution control method, program, recording medium, web page, transmission server, client, and web system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018105036A JP6901997B2 (ja) 2018-05-31 2018-05-31 プログラムの実行制御方法、プログラム、記録媒体、ウェブページ、送信サーバ、クライアントおよびウェブシステム

Publications (2)

Publication Number Publication Date
JP2019211849A JP2019211849A (ja) 2019-12-12
JP6901997B2 true JP6901997B2 (ja) 2021-07-14

Family

ID=68692458

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018105036A Active JP6901997B2 (ja) 2018-05-31 2018-05-31 プログラムの実行制御方法、プログラム、記録媒体、ウェブページ、送信サーバ、クライアントおよびウェブシステム

Country Status (2)

Country Link
US (1) US11212287B2 (ja)
JP (1) JP6901997B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11528314B2 (en) * 2020-03-26 2022-12-13 Honeywell International Inc. WebAssembly module with multiple decoders
JP7730731B2 (ja) 2021-11-22 2025-08-28 キヤノン株式会社 情報処理装置とその制御方法、及びプログラム
JP7505516B2 (ja) * 2022-03-04 2024-06-25 カシオ計算機株式会社 ウェブアプリケーションサーバ、ウェブアプリケーションプログラム及びウェブアプリケーション提供方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6167522A (en) 1997-04-01 2000-12-26 Sun Microsystems, Inc. Method and apparatus for providing security for servers executing application programs received via a network
US7984500B1 (en) * 2006-10-05 2011-07-19 Amazon Technologies, Inc. Detecting fraudulent activity by analysis of information requests
US20090019525A1 (en) 2007-07-13 2009-01-15 Dachuan Yu Domain-specific language abstractions for secure server-side scripting
WO2015190371A1 (ja) 2014-06-13 2015-12-17 アーティス株式会社 アプリケーションプログラム
US20160241560A1 (en) * 2015-02-13 2016-08-18 Instart Logic, Inc. Client-site dom api access control
JP6463170B2 (ja) 2015-03-03 2019-01-30 インヴェンティット株式会社 アプリケーションの利用制限装置および利用制限用プログラム
WO2017049045A1 (en) * 2015-09-16 2017-03-23 RiskIQ, Inc. Using hash signatures of dom objects to identify website similarity
GB201522315D0 (en) * 2015-12-17 2016-02-03 Irdeto Bv Securing webpages, webapps and applications
EP3577589B1 (en) * 2016-12-08 2024-01-03 Cequence Security, Inc. Prevention of malicious automation attacks on a web service

Also Published As

Publication number Publication date
US11212287B2 (en) 2021-12-28
JP2019211849A (ja) 2019-12-12
US20190372980A1 (en) 2019-12-05

Similar Documents

Publication Publication Date Title
KR101201003B1 (ko) 데이터의 출처 추적 및 데이터 전송 제어
JP4395178B2 (ja) コンテンツ処理システム、方法及びプログラム
US10241980B2 (en) Rendering a web page using content communicated to a browser application from a process running on a client
US8910292B1 (en) Method and system for detection of remote file inclusion vulnerabilities
US8887290B1 (en) Method and system for content protection for a browser based content viewer
US20110016381A1 (en) Monitoring a background process in a web browser and providing status of same
US11073994B2 (en) System and method to secure a computer system by selective control of write access to a data storage medium
JP6901997B2 (ja) プログラムの実行制御方法、プログラム、記録媒体、ウェブページ、送信サーバ、クライアントおよびウェブシステム
US9558356B2 (en) Data driven system for responding to security vulnerability
Bui et al. Xss vulnerabilities in cloud-application add-ons
RU2638779C1 (ru) Способ и сервер для вьполнения авторизации приложения на электронном устройстве
JP4859775B2 (ja) コンテンツ配信装置、コンテンツ配信制御方法、および、コンテンツ配信制御プログラム
CN116431948B (zh) 一种图片加载方法、装置、电子设备及存储介质
CN108322420B (zh) 后门文件的检测方法和装置
JP5474091B2 (ja) ライブラリに対するガジェットアクセスを安全にする方法
Hickling What is DOM XSS and why should you care?
US8484232B2 (en) Method, computer arrangement, computer program and computer program product for checking for the presence of control statements in a data value
JP5326035B1 (ja) サーバ装置
JP6041634B2 (ja) 改竄検知装置及び改竄検知方法
JP2001154984A (ja) ネットワークを介して伝送されるディジタル画像の著作権保護のための方法及びシステム
Inoue et al. Automatic examination-based whitelist generation for XSS attack detection
CN115834254A (zh) 网络内容安全防护方法、装置、存储介质及电子设备
CN118395434A (zh) 前端组件的管控方法、装置、设备及存储介质
JP2014086079A (ja) サーバ装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200717

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210519

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: 20210601

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210618

R150 Certificate of patent or registration of utility model

Ref document number: 6901997

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250