PhantomJSへのアクセスを制限する

Version:
日本語翻訳に関する免責事項

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

適用対象

すべての 主要役割

Sitecoreインストールフレームワーク

PhantomJSはContent Delivery、xDB Processing、xDB Reportingの役割でデフォルトで無効化されていません。

Azure Toolkit

PhantomJSはContent Delivery、xDB Processing、xDB Reportingの役割でデフォルトで無効化されていません。

PhantomJSはSitecoreに付属するサードパーティ製プログラムです。コンテンツテスト機能で、Content ManagementやEXM Dispatchロールのウェブページのスクリーンショット生成やサムネイル作成に使われています。プログラムを移動させたり、権限を制限したり、不要なロールで無効化したりすることで、PhantomJSのセキュリティを高めることができます。

PhantomJSをwebrootフォルダの外に置く

PhantomJSは \$(dataFolder)\tools\phantomjs\ フォルダ内にあります。 $(dataFolder) 変数はデフォルトで「 App_Data」となり、PhantomJSは \App_Data\tools\phantomjs\ フォルダに入ります。これにより、セキュリティ設定が正しく設定されていない場合、外部の人がphantomjs.exeファイルにアクセスできる可能性がありますSitecore。

コンテンツテストのために、Sitecoreは\App_Config\Sitecore\ContentTesting\Sitecore.ContentTesting.configパッチファイルのContentTesting.PhantomJS.ExecutablePath設定を通じてPhantomJSを参照しています。

サムネイル生成に関して、Sitecoreは以下の設定でPhantomJSを参照しています:

  • PhantomJsExePath は phantomjs.exe ファイルを参照します。デフォルト値は /tools/phantomjs/phantomjs.exeです。
  • PhantomJsRenderScriptPath は render.js ファイルを参照します。デフォルト値は /tools/phantomjs/render.jsです。

!注パッチファイルの作成についての詳細は、「 Sitecore設定のカスタマイズにパッチファイルを使う」をご覧ください。

PhantomJSフォルダを移動するには:

  1. \App_Data\tools\phantomjs\フォルダを例えばC:\phantomjs1\に移動します。もし望むなら、例えばコンテンツテスト用のphantomjs1とサムネイル用のphantomjs2という2つのphantomjsフォルダを定義することもできます。

  2. \App_Config\Include\フォルダ内に、例えば「MovePhantomJSFolder.config」と名付けられたパッチファイルを作成します。

  3. 以下の構成を挿入します:

  4. パッチファイルを保存してください。

  5. App_Dataフォルダの内容を新しいデータフォルダ(例:D:\SC\Data)に移動させます。

    !重要App_DataフォルダーはデフォルトでSitecore.configファイルのdataFolder変数に定義されています。

    PhantomJS.exeの新しい場所(例えばC:\PhantomJs)を作成する場合は、\App_Data\tools\phantomjsフォルダ内でデフォルトで見つかっているファイルだけを新しい場所に移動するようにしてください。

PhantomJSの権限を制限する

PhantomJSはSitecore内で実行されるため、Sitecoreと同じ権限で動作します。Sitecoreはできるだけ権限を最小限に抑え、必要なファイルやフォルダのみにSitecoreアクセスを許可することを推奨します。

PhantomJSフォルダとプログラムファイルへのアクセスを制限してください

Sitecoreアカウントは以下に制限することをお勧めします:

  • PhantomJSフォルダへの読み取りアクセス
  • PhantomJSプログラムファイルの実行権限

スクリーンショットフォルダへのアクセスを制限してください

Sitecore PhantomJSにgetScreenShotForURLパイプライン内のRenderScriptsプロセッサによって生成されるスクリプトを渡します。スクリプトはPhantomJSに特定のフォルダとファイル名にスクリーンショットを書き込むよう指示します。フォルダはgetScreenShotForURLパイプラインで指定され、デフォルトは \temp\screenshotsです。ファイル名はGenerateFilenameプロセッサによって生成されます。

Sitecoreアカウントの読み取り・書き込みアクセスはスクリーンショットフォルダに限定することをお勧めします。

キャッシュフォルダへのアクセスを制限してください

PhantomJSはウェブリソースをディスク上にキャッシュするよう設定されており、キャッシュの位置はWindowsバージョンによって以下のいずれかになります。

  • C:\Ofi Labs\PhantomJS\cache
  • C:\Users\\AppData\Local\Ofi Labs\PhantomJS\cache ここで はSitecoreが運営されているアカウントです。

Sitecoreアカウントの読み書きアクセスはキャッシュフォルダに限定することをお勧めします。

あるいは、ディスクキャッシュを完全に無効にする方法は:

  1. \App_Config\Sitecore\ContentTesting\Sitecore.ContentTesting.configファイルを開け。
  2. ContentTesting.PhantomJS.EnableDiskCache設定をfalseに変更してください。

!注キャッシュを無効にするとスクリーンショット生成に時間がかかることに注意してください。なぜなら、毎回すべてのウェブリソースを取得しなければならないからです。

PhantomJSを無効にする

PhantomJSはContent Delivery、xDB処理、xDBレポートの役割には不要で、起動するgetScreenShotForURLパイプラインにパッチを当ててプログラムフォルダを削除することで無効化できます。

getScreenShotForURLパイプラインは\App_Config\Sitecore\ContentTesting\Sitecore.ContentTesting.config設定ファイル内にあります。

getScreenShotForURLパイプラインを無効にし、PhantomJSフォルダを削除するには:

  1. \App_Config\Include\フォルダに行ってください。

  2. 例えば、DisableGetScreenShotForURLPipeline.config.

  3. 以下の構成を挿入します:

  4. パッチファイルを保存してください。

  5. \$(dataFolder)\tools\フォルダに行ってください。

  6. phantomjs\フォルダ(phantomjs.exe実行ファイルを含むフォルダを削除してください。

この記事を改善するための提案がある場合は、 お知らせください!