JP2012078943A - スクリプトアプリケーションの実行方法 - Google Patents

スクリプトアプリケーションの実行方法 Download PDF

Info

Publication number
JP2012078943A
JP2012078943A JP2010221608A JP2010221608A JP2012078943A JP 2012078943 A JP2012078943 A JP 2012078943A JP 2010221608 A JP2010221608 A JP 2010221608A JP 2010221608 A JP2010221608 A JP 2010221608A JP 2012078943 A JP2012078943 A JP 2012078943A
Authority
JP
Japan
Prior art keywords
script
application
interpreter
program
data
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.)
Pending
Application number
JP2010221608A
Other languages
English (en)
Inventor
Akira Moriguchi
昭 森口
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.)
Hitachi Solutions Ltd
Original Assignee
Hitachi Solutions 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 Hitachi Solutions Ltd filed Critical Hitachi Solutions Ltd
Priority to JP2010221608A priority Critical patent/JP2012078943A/ja
Publication of JP2012078943A publication Critical patent/JP2012078943A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Devices For Executing Special Programs (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】インタプリタに手を加えること無く、スクリプトアプリケーションのサイズを肥大化させること無く、スクリプトアプリケーションから保存されたデータに対する他のスクリプトアプリケーションからのアクセスを防止する。
【解決手段】スクリプトアプリケーションが、サンドボックス内のデータアクセスに必要なセッションパスワードを生成し、インタプリタアプリケーションに送信し、インタプリタアプリケーションから受信したセッションパスワードの認証を行い、サンドボックス内のデータアクセス制限を行い、スクリプトの実行終了時にセッションパスワードを削除する。インタプリタアプリケーションが、スクリプトアプリケーションから受信したセッションパスワードをスクリプトアプリケーションに送信し、セッションパスワードで識別されるサンドボックス内に記述されたスクリプトを受け取り、インタプリタに解釈・実行させる。
【選択図】図2

Description

本発明は、スクリプトアプリケーションのサイズ削減とスクリプトアプリケーションから保存したデータの安全性を確保するスクリプトアプリケーションの実行方法に関するものである。
近年、モバイル用のオープンソースオペレーティングシステムとしてAndroid(グーグル社の登録商標)が登場し、様々なハードウェアに搭載されている。Android用のアプリケーションは、DalvikVM(Dalvik Vertual Machine)上で動作し、開発に用いる主なプログラミング言語はJava(サンマイクロシステムズ社の登録商標)である。Androidには、セキュリティモデルとしてサンドボックスが採用されており、アプリケーションによって保存されたデータに対する、他のアプリケーションからのアクセスを防ぐことができるようになっている。アプリケーションが保存されている領域を、サンドボックス内でのアプリケーション実行の条件とすることで、アプリケーションを確実にサンドボックス内で実行させるアプリケーションの実行方法が下記の特許文献1に記載されている。
また、Androidでは、Intentという仕組みにより、アプリケーション間の連携を行うことができる。具体的には、DalvikVM上のアプリケーションフレームワークに搭載されているIntentクラスのオブジェクトを生成し、他のアプリケーションに送信することで、他のアプリケーション内のコンポーネントプログラムを起動させることができるというものである。さらに、Intentオブジェクトには、文字列やバイト配列等の任意のデータを付加することができ、他のアプリケーションにデータを送信することも可能である。
現在、Androidアプリケーションのスクリプト言語による開発を可能にする技術として、ASE(Android Scripting Environment)やRuboto等のAndroid上でのインタプリタの開発が行われており、Ruby、Python,Perl等のスクリプト言語で記述したアプリケーションをAndroid端末上で実行することができる。
DalvikVM上で実行されるJavaアプリケーションの開発には、Javaで記述されたソースコードをDalvikVMが解釈・実行することが可能なDalvikバイトコードにコンパイルする必要がある。
一方で、スクリプト言語は、インタプリタが、スクリプトを直接読込んで、解釈・実行を行うため、開発者がバイトコードへ変換することなく、アプリケーションを実行させることができる。スクリプトアプリケーションにおけるセキュリティモデルとして、スクリプトで記述されたアプリケーションに対し、実行できるコマンドをアクセス制御リストにより制限することで、不正なスクリプトアプリケーションの実行を防止する方法が下記の特許文献2に記載されている。
特開2006−65493公報 特開2004−5441公報
しかしながら、上記のインタプリタは、Androidアプリケーションとして提供され、スクリプトアプリケーションの実行は、インタプリタが、スクリプトの記述されたファイルを読込むことで行うため、インタプリタ上で実行されるスクリプトアプリケーションは、すべて同じサンドボックス内で実行されてしまう。したがって、スクリプトアプリケーションから保存されたデータに、他のスクリプトアプリケーションからアクセスすることが可能になってしまう。
スクリプトアプリケーションによって保存されたデータを保護するためには、Androidアプリケーションに対するサンドボックスモデルや前記の特許文献1のアプリケーションの実行方法をインタプリタに実装する、もしくは、1つのスクリプトアプリケーション毎に、インタプリタを組み込む必要がある。
前者の方法では、インタプリタの内部プログラムを改変する必要があり、実装の負担が大きく、後者の方法では、スクリプトアプリケーションのサイズが肥大化してしまう。また、特許文献2に記載の方法では、データの読込み、書き込みを制限する必要があるため、スクリプトアプリケーション開発の自由度を大きく減じてしまうことになる。
本発明の目的は、従来のインタプリタの内部プログラムに手を加えること無く、さらに、スクリプトアプリケーションのサイズを肥大化させること無く、スクリプトアプリケーションから保存されたデータに対する他のスクリプトアプリケーションからのアクセスを防止することが可能なスクリプトアプリケーション実行方法を提供することにある。
上記目的を達成するため、本発明に係るスクリプトアプリケーションの実行方法は、スクリプトを解釈・実行するインタプリタを備えるインタプリタアプリケーションと前記インタプリタアプリケーションにスクリプトを送信するスクリプトアプリケーションを搭載する端末におけるスクリプトアプリケーションの実行方法であって、
前記スクリプトアプリケーションが、前記スクリプトが記述されたスクリプトファイルからスクリプトを読込み、前記インタプリタアプリケーションに前記スクリプトを送信するステップと、
前記インタプリタアプリケーションが、前記スクリプトアプリケーションからスクリプトを受け取り、前記インタプリタにスクリプトを解釈・実行させるステップと、
を備え、
前記スクリプトアプリケーションが、当該スクリプトアプリケーションのサンドボックス内のデータアクセスに必要なセッションパスワードを生成し、前記インタプリタアプリケーションに送信するステップと、前記インタプリタアプリケーションから受信した前記セッションパスワードの認証を行い、前記サンドボックス内のデータアクセス制限を行うステップと、前記スクリプトの実行終了時に、前記セッションパスワードを削除するステップとを備え、
前記インタプリタアプリケーションが、前記スクリプトアプリケーションから受信したセッションパスワードを前記スクリプトアプリケーションに送信し、当該セッションパスワードで識別される前記サンドボックス内に記述されたスクリプトを受け取り、前記インタプリタに解釈・実行させるステップとを備えることを特徴とする。
また、前記インタプリタアプリケーションが、前記スクリプトアプリケーションから受信した前記セッションパスワードにより前記スクリプトアプリケーションのサンドボックス内からスクリプトライブラリを受信し、その受信したスクリプトライブラリを前記インタプリタアプリケーションのサンドボックス内に保存し、前記スクリプトに記述されている前記スクリプトライブラリのファイルパスを、前記インタプリタアプリケーションのサンドボックス内のファイルパスに書き換えるステップと、前記スクリプトの実行終了時に、前記インタプリタアプリケーションのサンドボックスから、前記スクリプトライブラリを削除するステップとをさらに備えることを特徴とする。
本発明によれば、従来のインタプリタの内部プログラムに手を加えること無く、さらに、スクリプトアプリケーションのサイズを肥大化させること無く、スクリプトアプリケーションから保存されたデータに対する他のスクリプトアプリケーションからのアクセスを防止することができる。
本発明のスクリプトアプリケーションの実行方法を実施するソフトウェア構成図である。 インタプリタアプリケーション104とスクリプトアプリケーション105A、Bの内部構成を示すブロック図である。 スクリプトアプリケーション105Aのスクリプト実行開始処理を説明するためのフローチャートである。 スクリプト変換プログラム203のファイルパス変換処理の一例である。 インタプリタアプリケーション104のデータ書込み要求処理を説明するためのフローチャートである。 インタプリタアプリケーション104のデータ読込み要求処理を説明するためのフローチャートである。 スクリプトアプリケーション105の保存領域アクセスプログラム215の処理を説明するためのフローチャートである。 スクリプトアプリケーション105Aの終了処理を説明するためのフローチャートである。
以下、図面を参照して本発明の実施の形態について説明する。
図1は、本発明のスクリプトアプリケーションの実行方法を実施するソフトウェア構成図である。
図1のソフトウェア構成図は、Android OS101、Dalvik VM102、アプリケーションフレームワーク103、インタプリタアプリケーション104、スクリプトアプリケーションA105、スクリプトアプリケーションB106から成る構成例を示している。
インタプリタアプリケーション104は、スクリプトアプリケーション105A、Bからスクリプトを受信し、実行するアプリケーションである。スクリプトアプリケーション105A、Bは実行させるスクリプトをインタプリタアプリケーション104に送信するアプリケーションである。
図2は、インタプリタアプリケーション104とスクリプトアプリケーション105A、Bの内部構成を示すブロック図である。
インタプリタアプリケーション104は、インタプリタ201、インタプリタ起動プログラム202、スクリプト変換プログラム203、保存領域アクセススクリプトライブラリファイル204、データ読込みラッパープログラム207、スクリプト終了プログラム208、インタプリタ用保存領域209とを備える。
スクリプトアプリケーション105A、Bは、スクリプト送信プログラム211、メインスクリプトファイル212、スクリプトライブラリファイル213、セッションパスワード生成プログラム214、保存領域アクセスプログラム215、スクリプト用保存領域216を備える。
なお、セッションパスワードとは、インタプリタアプリケーション104がスクリプトアプリケーション105A,Bのサンドボックス領域にあるファイルにアクセスするために必要なパスワードである。
また、メインスクリプトとは、スクリプトアプリケーション105A、Bが、インタプリタアプリケーション104に最初に実行させるスクリプトであり、スクリプトライブラリは、メインスクリプト内で参照されるスクリプトである。
インタプリタ201は、スクリプトを実行するプログラムであり、インタプリタ起動プログラム202からセッションパスワード、保存領域アクセスプログラム識別情報、メインスクリプトを受け取って起動し、メインスクリプトを実行する。メインスクリプト実行時に、スクリプトライブラリファイル213を参照する場合には、インタプリタ用保存領域209からスクリプトライブラリを読み出す。さらに、メインスクリプトの実行終了時には、スクリプト終了プログラム208を起動し、セッションパスワードと保存領域アクセスプログラム識別情報をスクリプト終了プログラム208に渡す。
なお、保存領域アクセスプログラム識別情報とは、スクリプトアプリケーション毎に存在する保存領域アクセスプログラム215から特定のスクリプトアプリケーションの保存領域アクセスプログラム215を識別するために必要な情報であり、保存領域アクセスプログラム215を記述したJavaクラスの完全修飾名または、IntentFilterに記載されている条件情報でも良い。
IntentFilterとは、Androidアプリケーション内のプログラムがどのようなIntentを受信するかについての条件情報を記載したものであり、Intent内の条件情報とIntentFilterの条件情報が一致した時、プログラムはIntentを受信する。
インタプリタ起動プログラム202は、インタプリタ201を起動し、スクリプトを実行させるプログラムであり、スクリプト送信プログラム211からIntentを受け取り、Intentからメインスクリプト、スクリプトライブラリ、セッションパスワード、保存領域アクセスプログラム識別情報を取り出し、インタプリタ201を起動し、メインスクリプト、セッションパスワード、保存領域アクセスプログラム識別情報を渡す。
また、スクリプト変換プログラム203にメインスクリプト、スクリプトライブラリを渡し、スクリプト変換プログラム203からファイルパスを変換したメインスクリプトを受け取る。
スクリプト変換プログラム203は、メインスクリプト内にあるスクリプトライブラリのファイルパスを、インタプリタ用保存領域に保存されたスクリプトライブラリファイル204のファイルパスに書き換えるプログラムであり、インタプリタ起動プログラム202からメインスクリプト、スクリプトライブラリを受け取り、スクリプトライブラリをインタプリタ用保存領域209に保存する。また、メインスクリプト内にある、スクリプトライブラリファイル213のファイルパスをインタプリタ用保存領域2069保存されたスクリプトライブラリファイル213の新しいファイルパスに書き換え、メインスクリプトをインタプリタ起動プログラム202に渡す。
保存領域アクセススクリプトライブラリファイル204は、データ読込みラッパープログラム207と保存領域アクセスプログラム215を介して、スクリプト用保存領域216にアクセスする保存領域アクセススクリプトライブラリが記述されており、スクリプト用保存領域216にデータを書き込むデータ書込み関数205と、スクリプト用保存領域216からデータを読み込むデータ読込み関数206が含まれる。
データ書込み関数205は、ファイル名、書込みデータ、セッションパスワード、保存領域アクセスプログラム識別情報を引数とし、Intentにファイル名、書込みデータ、セッションパスワード、処理情報WRITEを格納し、引数として受け取った保存領域アクセスプログラム識別情報と一致する保存領域アクセスプログラム215に、Intentを送信する処理が記述される。
データ読込み関数206は、ファイル名、セッションパスワード、保存領域アクセスプログラム識別情報を引数とし、データIDを生成し、保存領域アクセスプログラム識別情報、ファイル名、セッションパスワード、データID、処理情報READをデータ読込みラッパープログラム207に渡し、データ読込みラッパープログラム207からデータIDに一致する読込みデータを取得し、読込みデータを戻り値として返す処理が記述されている。データIDとは、1回のデータ読込み処理に対し、生成されるID(Identifier)であり、データ読込みラッパープログラム207が保持している読込みデータを識別するために使用する。また、処理情報とは、保存領域アクセスプログラム215に実行させる処理であり、データ書込みを表すWRITE、データ読込みを表すREAD、保存領域アクセスプログラム215の実行停止を表すENDがある。
データ読込みラッパープログラム207は、保存領域アクセスプログラム215を介して、スクリプト用保存領域216からデータを読込むプログラムであり、インタプリタ201から読込みファイル名、セッションパスワード、保存領域アクセスプログラム識別情報、データIDを受け取り、Intentに読込みファイル名、セッションパスワード、データIDを格納し、保存領域アクセスプログラム識別情報と一致する保存領域アクセスプログラム215にIntentを送信する。さらに、保存領域アクセスプログラム215から受信したIntentからデータIDと読込みデータを取得し、インタプリタ201に読込みデータを渡す。
スクリプト終了プログラム208は、メインスクリプト終了時に、インタプリタ用保存領域209に保存されているスクリプトライブラリの削除と保存領域アクセスプログラム215の停止を行うプログラムであり、インタプリタ201からセッションパスワードと保存領域アクセスプログラム識別情報を受け取り、インタプリタ用保存領域209内のスクリプトライブラリを削除する。また、Intentにセッションパスワード、処理情報ENDを格納し、保存領域アクセスプログラム識別情報と一致する保存領域アクセスプログラム215に、Intentを送信する。
インタプリタ用保存領域209は、インタプリタアプリケーション104のサンドボックス領域内に存在する保存領域であり、インタプリタアプリケーション104以外のアプリケーションからはアクセスできない。
スクリプトアプリケーション105A,Bのスクリプト送信プログラム211は、メインスクリプトファイル212、スクリプトライブラリファイル213からスクリプトを読込み、インタプリタアプリケーション104に送信するプログラムであり、保存領域アクセスプログラム識別情報を保持しており、メインスクリプトファイル212からメインスクリプト、スクリプトライブラリファイル213からスクリプトライブラリを読み出し、セッションパスワード生成プログラム214を起動し、セッションパスワード生成プログラム214からセッションパスワードを取得し、Intentにメインスクリプト、スクリプトライブラリ、セッションパスワード、保存領域アクセスプログラム識別情報を格納し、インタプリタ起動プログラム202に、Intentを送信する。さらに、保存領域アクセスプログラム215を起動し、セッションパスワードを渡す。
メインスクリプトファイル212は、メインスクリプトが記述されたファイルである。
スクリプトライブラリファイル213は、スクリプトライブラリファイルが記述されたファイルであり、複数あっても良い。
セッションパスワード生成プログラム214は、スクリプト送信プログラム211により起動され、セッションパスワードを生成し、スクリプト送信プログラム211にセッションパスワードを渡す。
保存領域アクセスプログラム215は、スクリプト用保存領域216からデータ書込みとデータ読込みを行うプログラムであり、まず、インタプリタアプリケーションから受信したIntentからセッションパスワードを取得し、セッションパスワードの認証を行う。続いて、Intentから処理情報を取得し、処理情報がWRITEの場合、インタプリタ201から、Intentからファイル名、書込みデータを取得し、ファイル名をもつファイルに書込みデータをスクリプト用保存領域216に書き込む。また、セッションパスワードの認証後、処理情報がREADの場合、Intentからファイル名、データIDを取得し、ファイル名を持つファイルをスクリプト用保存領域216から読込み、IntentにデータIDと読込みデータを格納し、データ読込みラッパープログラム207に送信する。また、セッションパスワードの認証後、処理情報がENDの場合、保存領域アクセスプログラム215は実行を終了し、セッションパスワードが初期化される。
スクリプト用保存領域216は、スクリプトアプリケーション105Aまたはスクリプトアプリケーション105Bのサンドボックス領域内に存在する保存領域であり、スクリプトアプリケーション105Aまたはスクリプトアプリケーション105B以外のアプリケーションからはアクセスできない。
以下、本実施の形態に係るスクリプトアプリケーション実行方法の処理の詳細を図3〜図8を参照して説明する。
図3は、スクリプトアプリケーション105Aのスクリプト実行開始処理を説明するためのフローチャートである。
ステップS301では、アプリ利用者が、スクリプトアプリケーション105Aを起動する。
ステップS302では、スクリプト送信プログラム211を起動する。
ステップS303では、スクリプト送信プログラム211が、メインスクリプトファイル212とスクリプトライブラリファイル213を読込み、メインスクリプトとスクリプトライブラリを取得する。
ステップS304では、スクリプト送信プログラム211が、セッションパスワード生成プログラム214を起動する。
ステップS305では、セッションパスワード生成プログラム214が、セッションパスワードを生成し、スクリプト送信プログラム211に渡す。
ステップS306では、スクリプト送信プログラム211が、保存領域アクセスプログラム215を起動し、ステップS305で取得したセッションパスワードを渡す。
ステップS307では、スクリプト送信プログラム211が、IntentにステップS303で取得したメインスクリプト212とスクリプトライブラリ213、ステップS305で取得したセッションパスワード、保存領域アクセスプログラム識別情報を格納し、インタプリタ起動プログラム202に、Intentを送信する。
ステップS308では、インタプリタ起動プログラム202が、受信したIntentからメインスクリプト212、スクリプトライブラリ213、セッションパスワード、保存領域アクセスプログラム識別情報をIntentから取得する。
ステップS309では、インタプリタ起動プログラム202が、スクリプト変換プログラム203を起動し、メインスクリプト212とスクリプトライブラリ213をスクリプト変換プログラム203に渡す。
ステップS310では、スクリプト変換プログラム203が、スクリプトライブラリをインタプリタ用保存領域209に保存する。
ステップS311では、スクリプト変換プログラム203が、メインスクリプト内にあるスクリプトライブラリのファイルパスを、インタプリタ用保存領域209に保存されているスクリプトライブラリのファイルパスに書き換え、インタプリタ起動プログラム202にファイルパスを書き換えたメインスクリプトを渡す。
図4にその一例を示す。図4は、スクリプト言語がRubyであり、スクリプトライブラリのファイル名がsubscript.rb、インタプリタ201のJavaパッケージ名がrubyinterpreterであった場合のファイルパス変換処理の一例である。
Dalvik VM102では、データは、/data/data/(Javaパッケージ名)/filesフォルダに保存される。(Javaパッケージ名)は保存処理を行うクラスのパッケージ名である。Rubyでは、require関数で別ファイルのRubyスクリプトを取り込む。よって、変換後のメインスクリプトのrequire関数には、/data/data/rubyinterpreter/files/subscript.rbが引数として与えられている。
また、スクリプトライブラリファイルが複数有り、スクリプトライブラリファイルが、別のスクリプトライブラリファイルを参照している場合には、スクリプトライブラリファイル内のファイルパスも書き換える。
ステップS312では、インタプリタ起動プログラム202が、インタプリタ201を起動し、メインスクリプト、セッションパスワード、保存領域アクセスプログラム識別情報をインタプリタ201に渡す。
ステップS313では、インタプリタ201が、メインスクリプトを実行する。
図5は、インタプリタアプリケーション104のデータ書込み要求処理を説明するためのフローチャートである。
ステップS501では、インタプリタ201が、保存領域アクセススクリプトライブラリファイル204から保存領域アクセススクリプトライブラリを読込み、データを書き込むファイル名、書込みデータ、ステップS312で取得したセッションパスワードと保存領域アクセスプログラム識別情報を引数とし、保存領域アクセススクリプトライブラリファイル204のデータ書込み関数205を実行する。
スクリプト言語がRubyの場合では、メインスクリプトがrequire関数の引数として、保存領域アクセススクリプトライブラリを取り込み、保存領域アクセススクリプトライブラリに定義されているデータ書込み関数205にファイル名、書込みデータ、セッションパスワード、保存領域アクセスプログラム識別情報を引数として渡し、呼び出す。
ステップS502では、インタプリタ201が、データ書込み関数205を実行して、Intentにファイル名、書込みデータ、セッションパスワード、処理情報WRITEを格納し、保存領域アクセスプログラム識別情報と一致する保存領域アクセスプログラム215に、Intentを送信する。
図6は、インタプリタアプリケーション104のデータ読込み要求処理を説明するためのフローチャートである。
ステップS601では、インタプリタ201が、保存領域アクセススクリプトライブラリファイル204から保存領域アクセススクリプトライブラリを読込み、データを読込むファイル名、ステップS312で取得したセッションパスワード、保存領域アクセスプログラム識別情報を引数とし、保存領域アクセススクリプトライブラリのデータ読込み関数206を実行する。
スクリプト言語がRubyの場合では、メインスクリプトがrequire関数の引数に、保存領域アクセススクリプトライブラリファイル204を指定し、保存領域アクセススクリプトライブラリに定義されているデータ読込み関数にファイル名、セッションパスワード、保存領域アクセスプログラム識別情報を引数として渡し、呼び出す。
ステップS602では、インタプリタ201が、データ読込み関数206を実行して、データ読込みラッパープログラム207を起動し、保存領域アクセスプログラム識別情報、読込みファイル名、セッションパスワードをデータ読込みラッパープログラム207に渡す。
ステップS603では、データ読込みラッパープログラム207が、データIDを生成し、IntentにステップS602で取得したファイル名とセッションパスワード、処理情報READ、生成したデータIDを格納し、ステップS602で受け取った保存領域アクセスプログラム識別情報と一致する保存領域アクセスプログラムA215に、Intentを送信する。
図7に示した保存領域アクセスプログラム215の処理後、ステップS604では、データ読込みラッパープログラム207が、ステップS710で受信したIntentからデータIDとデータを取得し、データIDとデータを関連づけて保持する。
ステップS605では、インタプリタ201が、ステップS603で生成したデータIDをデータ読込みラッパープログラム207に渡す。
ステップS606では、データ読込みラッパープログラム207が、ステップS605で受信したデータIDと一致するデータを保持している場合、ステップS607に進み、データIDと一致するデータを保持していない場合、ステップS605に進む。
ステップS605とステップS606は、ステップS709で読込むデータのサイズによっては、ステップS604よりも先に行われることがある。この場合は、データ読込みラッパープログラム207が、ステップS605で受信したデータIDと一致するデータを保持していないため、一定時間後、再び、ステップS605の処理を行う。
ステップS607では、データ読込みラッパープログラム207が、ステップS605で受信したデータIDを持つ、ステップS604で受信したデータをインタプリタ201に渡す。
図7は、スクリプトアプリケーション105の保存領域アクセスプログラム215の処理を説明するためのフローチャートである。
ステップS701では、保存領域アクセスプログラム215が、ステップS502、ステップS603、ステップS803のいずれかで受信したIntentからセッションパスワードを取得する。
ステップS702では、保存領域アクセスプログラム215が、ステップS701で取得したセッションパスワードと、ステップS306で受け取ったセッションパスワードを比較する。
ステップS703では、ステップS702でセッションパスワードが一致した場合、ステップS704に進み、セッションパスワードが一致しなかった場合、処理を終了する。
ステップS704では、保存領域アクセスプログラム215が、ステップS502、ステップS603、ステップS803のいずれかで受信したIntentから処理情報を取得する。
ステップS705では、処理情報がWRITEだった場合、ステップS706に進み、処理情報がREADだった場合、ステップS708に進み、処理情報がENDだった場合、ステップS711に進む。
ステップS706では、保存領域アクセスプログラム215が、ステップS502で取得したIntentからファイル名、書込みデータを取得する。
ステップS707では、保存領域アクセスプログラム215が、ステップS706で取得したファイル名を持つファイルに、ステップS706で取得した書込みデータを書き込む。
ステップS708aでは、保存領域アクセスプログラム215が、ステップS603で取得したIntentからファイル名、書き込みデータを取得する。
ステップS708bでは、保存領域アクセスプログラム215がIntentから読み込みファイル名とデータIDを取得する。
ステップS709では、保存領域アクセスプログラム215が、ステップS708bで取得した読込みファイル名を持つファイルからデータを読込む。
ステップS710では、保存領域アクセスプログラム215が、ステップS709で読込んだデータと、ステップS708bで取得したデータIDをIntentに格納し、データ読込みラッパープログラム207にIntentを送信する。
ステップS711では、保存領域アクセスプログラム215が、ステップS306で受け取ったセッションパスワードを削除し、処理を終了する。
図8は、スクリプトアプリケーション105Aの終了処理を説明するためのフローチャートである。
ステップS801では、インタプリタ201が、ステップS312で取得したセッションパスワードと保存領域アクセスプログラム識別情報をスクリプト終了プログラム208に渡す。
ステップS802では、スクリプト終了プログラム208が、ステップS310でインタプリタ用データ保存領域209に保存されたスクリプトライブラリファイル213を削除する。
ステップS803では、スクリプト終了プログラム208が、IntentにステップS801で取得したセッションパスワード、処理情報ENDを格納し、保存領域アクセスプログラム215にIntentを送信する。
101 Android OS
102 Dalvik VM
103 Framework
104 インタプリタアプリケーション
105A、B スクリプトアプリケーション
201 インタプリタ
202 インタプリタ起動プログラム
203 スクリプト変換プログラム
204 保存領域アクセススクリプトライブラリファイル
205 データ書込み関数
206 データ読込み関数
207 データ読込みラッパープログラム
208 スクリプト終了プログラム
209 インタプリタ用保存領域
211 スクリプト送信プログラム
212 メインスクリプトファイル
213 スクリプトライブラリファイル
214 セッションパスワード生成プログラム
215 保存領域アクセスプログラム
216 スクリプト用保存領域

Claims (2)

  1. スクリプトを解釈・実行するインタプリタを備えるインタプリタアプリケーションと前記インタプリタアプリケーションにスクリプトを送信するスクリプトアプリケーションを搭載する端末におけるスクリプトアプリケーションの実行方法であって、
    前記スクリプトアプリケーションが、前記スクリプトが記述されたスクリプトファイルからスクリプトを読込み、前記インタプリタアプリケーションに前記スクリプトを送信するステップと、
    前記インタプリタアプリケーションが、前記スクリプトアプリケーションからスクリプトを受け取り、前記インタプリタにスクリプトを解釈・実行させるステップと、
    を備え、
    前記スクリプトアプリケーションが、当該スクリプトアプリケーションのサンドボックス内のデータアクセスに必要なセッションパスワードを生成し、前記インタプリタアプリケーションに送信するステップと、前記インタプリタアプリケーションから受信した前記セッションパスワードの認証を行い、前記サンドボックス内のデータアクセス制限を行うステップと、前記スクリプトの実行終了時に、前記セッションパスワードを削除するステップとを備え、
    前記インタプリタアプリケーションが、前記スクリプトアプリケーションから受信したセッションパスワードを前記スクリプトアプリケーションに送信し、当該セッションパスワードで識別される前記サンドボックス内に記述されたスクリプトを受け取り、前記インタプリタに解釈・実行させるステップとを備えることを特徴とするスクリプトアプリケーションの実行方法。
  2. 前記インタプリタアプリケーションが、前記スクリプトアプリケーションから受信した前記セッションパスワードにより前記スクリプトアプリケーションのサンドボックス内からスクリプトライブラリを受信し、その受信したスクリプトライブラリを前記インタプリタアプリケーションのサンドボックス内に保存し、前記スクリプトに記述されている前記スクリプトライブラリのファイルパスを、前記インタプリタアプリケーションのサンドボックス内のファイルパスに書き換えるステップと、前記スクリプトの実行終了時に、前記インタプリタアプリケーションのサンドボックスから、前記スクリプトライブラリを削除するステップとをさらに備えることを特徴とする請求項1に記載のスクリプトアプリケーションの実行方法。
JP2010221608A 2010-09-30 2010-09-30 スクリプトアプリケーションの実行方法 Pending JP2012078943A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010221608A JP2012078943A (ja) 2010-09-30 2010-09-30 スクリプトアプリケーションの実行方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010221608A JP2012078943A (ja) 2010-09-30 2010-09-30 スクリプトアプリケーションの実行方法

Publications (1)

Publication Number Publication Date
JP2012078943A true JP2012078943A (ja) 2012-04-19

Family

ID=46239153

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010221608A Pending JP2012078943A (ja) 2010-09-30 2010-09-30 スクリプトアプリケーションの実行方法

Country Status (1)

Country Link
JP (1) JP2012078943A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109558217A (zh) * 2018-12-19 2019-04-02 北京恒泰实达科技股份有限公司 数据处理脚本程序运行方法以及数据处理容器

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109558217A (zh) * 2018-12-19 2019-04-02 北京恒泰实达科技股份有限公司 数据处理脚本程序运行方法以及数据处理容器

Similar Documents

Publication Publication Date Title
US11614926B2 (en) Consensus mechanism deployment method and apparatus
TWI598814B (zh) 用於管理及診斷配備有統一可延伸韌體介面(uefi)相容韌體的計算裝置之系統與方法
US8090959B2 (en) Method and apparatus for protecting .net programs
KR20200052957A (ko) 보안 제어 방법 및 컴퓨터 시스템
EP3190537A1 (en) Protection method and device for application data
CN101297280B (zh) 隔离扩展和设备驱动程序的配置
JP2015500543A (ja) ハードウェア保護アプリケーションのシステム・サービス要求相互作用を容易化する方法
CN110516428B (zh) 一种移动存储设备的数据读写方法、装置及存储介质
US20060122962A1 (en) Management method for managing software module and information processor
CN109598107B (zh) 一种基于应用安装包文件的代码转换方法及装置
KR102007532B1 (ko) 선택적으로 디버깅을 활성화 또는 억제하기 위한 수단을 갖는 하드웨어 보안 모듈 및 해당 디버깅 방법
WO2019228095A1 (zh) 手柄与第三方应用程序进行适配的方法、装置及存储介质
US20110271350A1 (en) method for protecting software
CN105550598B (zh) 一种移动存储设备的安全管理方法和装置
WO2016188167A1 (zh) 通用串行总线usb的充电方法、装置及终端
CN113761482A (zh) 一种程序代码保护方法和装置
KR101950512B1 (ko) 하드웨어 보안 모듈 및 그러한 모듈 내에서의 처리 방법
JP5986897B2 (ja) 端末装置、完全性検証システム、およびプログラム
US20150113506A1 (en) Method and system for adaptive loading of application
CN106127054B (zh) 一种面向智能设备控制指令的系统级安全防护方法
CN115994004B (zh) 一种应用程序接口调用方法及装置
JP2012078943A (ja) スクリプトアプリケーションの実行方法
TW200414048A (en) Secure control of access to data on a storage device of a computer system
EP1977338B1 (en) External configuration of processing content for script
CN113672908A (zh) 定点插桩方法、相关装置及系统