process-get-effective-root (プロシージャ)
public {process-get-effective-root}:#Url
パッケージ: CURL.RUNTIME.PROCESS

現在のプロセスの effective-root が存在する場合はこれを取得します。

説明

アプレット (またはスクリプト) の effective-root を使って、各種のセキュリティ チェックや、local-root および local-data の場所の選択に関して、そのアプレットの curl-root が別のアプレットの curl-root であるかのようにアプレットを動作させることができます。
ネットワーク アプレットの場合、effective-rootcurl-root と同じです。
ローカル アプレットの場合、process-get-curl-root に説明されているように、上位ディレクトリのスキャン中に有効な curl-root.txt ファイルが見つかり、これが空でなければ、その内容がアプレットの effective-root として使われます。
この条件を満たさない場合は、effective-root は存在せず、このプロシージャは null を返します。
occ-install-or-update を使ってアプレットが Web サーバーからローカルにインストールされると、元のアプレットの curl-root は、ローカルにインストールされたアプレットの適切な curl-root.txt ファイルに自動的に挿入されます (つまり、アクセスを許可されたディレクトリであると常にみなされることになります)。
Web サーバー上に配置するという意図でアプレットを開発している間に、手動で適切な curl-root.txt ファイルを作成することができます。この方法が既に許可されていない場合は、curl-root.txt ファイルの正当な祖先を curl://client-data/etc/allowed-curl-roots.txt ファイルに追加して、これにより curl-root.txt ファイルおよびその上位にあるその他の curl-root.txt がすべて許可されるように指定できます。この追加手順によってさまざまなセキュリティ改ざんの可能性が回避され、ファイルシステムのルートが「正当な」祖先であると考えられることも通常はありません。
effective-root は、request-local-data-permissionocc-install-or-update プロシージャが使用するローカル ディレクトリを定義するために使われます。具体的には、Url.name のホスト名の前の部分が削除され、ホスト名が小文字に変換され、ホスト名とポートの間にコロンがあればこれはプラス記号 (+) に変換され、結果を curl://user-data/local-data-for または curl://user-data/local-root-forにそれぞれ結合します。したがって、通常 effective-root には、すべてのローカル ファイルシステムで許可されている単純な ASCII 文字のみを含めることをお勧めします。これには、ASCII 文字、ASCII 数字、下線 (_)、マイナス記号 (-)、プラス記号 (+)、チルダ (~) およびピリオド (.) が含まれます。これら以外の文字が含まれる場合、プラットフォームによっては上記のプロシージャで使われるローカル ディレクトリが途中で分断される可能性があります。

注意事項

process-get-curl-root も参照してください。