PhantomJSへのアクセスを制限する
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
適用対象 |
すべての 主要な役割 |
Sitecoreインストールフレームワーク |
PhantomJSは、Content Delivery、xDB Processing、およびxDB Reportingロールではデフォルトで無効になっていません。 |
Azure ツールキット |
PhantomJSは、Content Delivery、xDB Processing、およびxDB Reportingロールではデフォルトで無効になっていません。 |
PhantomJSは、Sitecoreに同梱されているサードパーティプログラムです。これは、コンテンツ管理ロールとEXMディスパッチ ロールのWebページのスクリーンショットを生成したり、サムネイルを生成したりするために、コンテンツ テスト機能によって使用されます。PhantomJSのセキュリティを強化するには、プログラムを移動し、その権限を制限し、不要なロールでプログラムを無効にします。
PhantomJSをwebrootフォルダの外に配置します
PhantomJSは <webroot>\$(dataFolder)\tools\phantomjs\ フォルダにあります。 $(dataFolder) 変数のデフォルトはApp_Dataで、PhantomJSは <webroot>\App_Data\tools\phantomjs\ フォルダーに配置されます。これにより、Sitecoreのセキュリティ設定が適切に構成されていない場合、部外者がphantomjs.exeプログラム ファイルにアクセスできるようになる可能性があります。
コンテンツ テストの場合、Sitecoreは <webroot>\App_Config\Sitecore\ContentTesting\Sitecore.ContentTesting.configパッチ ファイルのContentTesting.PhantomJS.ExecutablePath設定を通じてPhantomJSを参照します。
サムネイルの生成の場合、Sitecoreは次の設定を通じてPhantomJSを参照します。
-
PhantomJsExePathphantomjs.exeファイルを参照します。デフォルト値は <sitecore data folder>/tools/phantomjs/phantomjs.exeです。
-
PhantomJsRenderScriptPathrender.jsファイルを参照します。デフォルト値は <sitecore data folder>/tools/phantomjs/render.jsです。
パッチ ファイルの作成の詳細については、「 パッチ ファイルを使用してSitecore設定をカスタマイズする」を参照してください。
PhantomJSフォルダを移動するには:
-
<webroot>\App_Data\tools\phantomjs\ フォルダをC:\phantomjs1\などに移動します。必要に応じて、コンテンツ テスト用のphantomjs1とサムネイル用のphantomjs2など、2つのphantomjsフォルダーを定義できます。
-
<webroot>\App_Config\Include\ フォルダに、MovePhantomJSFolder.configなどの名前のパッチ ファイルを作成します。
-
次の設定を挿入します。
RequestResponse<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/" xmlns:role="http://www.sitecore.net/xmlconfig/role/" xmlns:security="http://www.sitecore.net/xmlconfig/security/"> <sitecore> <settings> <setting name="ContentTesting.PhantomJS.ExecutablePath" value="C:\phantomjs1\phantomjs.exe" /> <setting name="PhantomJsExePath" value="C:\phantomjs2\phantomjs.exe" /> <setting name="PhantomJsRenderScriptPath" value="C:\phantomjs2\render.js" /> </settings> </sitecore> </configuration>
-
パッチ・ファイルを保存します。
-
App_Dataフォルダから新しいデータ フォルダ (D:\SC\Dataなど) に内容を移動します。
大事なApp_Dataフォルダは、デフォルトでは、Sitecore.configファイルのdataFolder変数で定義されます。
PhantomJS.exeの新しい場所 ( C:\PhantomJsなど) を作成する場合は、<webroot>\App_Data\tools\phantomjsフォルダー内でデフォルトで見つかったファイルのみを新しい場所に移動してください。
PhantomJSの権限を制限する
PhantomJSはSitecore内から実行されるため、Sitecoreと同じ権限で実行されます。Sitecoreは常に最小限の権限で実行し、必要なファイルとフォルダーへのアクセスのみを許可することをお勧めします。
PhantomJSフォルダとプログラムファイルへのアクセスを制限する
Sitecoreアカウントを次のように制限することをお勧めします。
-
PhantomJSフォルダへの読み取りアクセス
-
PhantomJSプログラムファイルに対する実行権限
スクリーンショットフォルダへのアクセスを制限する
Sitecoreは、getScreenShotForURLパイプラインのRenderScriptsプロセッサによって生成されたスクリプトをPhantomJSに渡します。このスクリプトは、PhantomJSにスクリーンショットを特定のフォルダとファイル名に書き込むように指示します。フォルダーはgetScreenShotForURLパイプラインで指定され、デフォルトは <webroot>\temp\screenshotsです。ファイル名はGenerateFilenameプロセッサによって生成されます。
Sitecoreアカウントをスクリーンショット フォルダーへの読み取りおよび書き込みアクセスに制限することをお勧めします。
キャッシュフォルダへのアクセスを制限する
PhantomJSはWebリソースをディスクにキャッシュするように設定されており、キャッシュの場所はWindowsのバージョンに応じて次のいずれかになります。
-
C:\Ofi Labs\PhantomJS\cache
-
C:\Users\<user>\AppData\Local\Ofi Labs\PhantomJS\cacheここで、<user> はSitecoreが実行されているアカウントです。
Sitecoreアカウントをキャッシュ フォルダーへの読み取りおよび書き込みアクセスに制限することをお勧めします。
または、ディスクキャッシュを完全に無効にするには、次のようにします。
-
\App_Config\Sitecore\ContentTesting\Sitecore.ContentTesting.configファイルを開きます。
-
ContentTesting.PhantomJS.EnableDiskCache設定をfalseに変更します。
キャッシュを無効にすると、スクリーンショットごとにすべてのWebリソースを取得する必要があるため、スクリーンショットの生成に時間がかかることに注意してください。
PhantomJSを無効にする
PhantomJSは、Content Delivery、xDB Processing、およびxDB Reportingロールでは必要ないため、PhantomJSを起動するgetScreenShotForURLパイプラインにパッチを適用し、プログラム フォルダーを削除することで無効にできます。
getScreenShotForURLパイプラインは、<webroot>\App_Config\Sitecore\ContentTesting\Sitecore.ContentTesting.config設定ファイルにあります。
getScreenShotForURLパイプラインを無効にし、PhantomJSフォルダを削除するには:
-
<webroot>\App_Config\Include\フォルダに移動します。
-
たとえば、DisableGetScreenShotForURLPipeline.configという名前のパッチ ファイルを作成します。
-
次の設定を挿入します。
RequestResponse<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/" xmlns:role="http://www.sitecore.net/xmlconfig/role/"> <sitecore role:require="ContentDelivery or > <pipelines> <getScreenShotForURL> <patch:delete /> </getScreenShotForURL> </pipelines> </sitecore> </configuration>
-
パッチ・ファイルを保存します。
-
<webroot>\$(dataFolder)\tools\フォルダに移動します。
-
phantomjs.exe実行可能ファイルを含むphantomjs\フォルダを削除します。