PhantomJSへのアクセスを制限する
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
適用対象 |
すべての 主要な役割 |
Sitecore インストール フレームワーク |
PhantomJSは、Content Delivery、xDB Processing、およびxDB Reportingのロールでは、デフォルトでは無効になっていません。 |
Azure ツールキット |
PhantomJSは、Content Delivery、xDB Processing、およびxDB Reportingのロールでは、デフォルトでは無効になっていません。 |
PhantomJSは、Sitecoreに付属するサードパーティ プログラムです。これは、Content ManagementロールとEXM Dispatchロールの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を実行し、必要なファイルとフォルダへのアクセスのみを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パイプラインにパッチを適用し、プログラム フォルダーを削除することで無効にできます。
また、Sitecore.Screenshots.Enabled設定をfalseに設定する必要があります。
-
getScreenShotForURLパイプラインは、<webroot>\App_Config\Sitecore\ContentTesting\Sitecore.ContentTesting.config設定ファイルにあります。
-
Sitecore.Screenshots.Enabled設定は、<webroot>\App_Config\Sitecore\CMS.Core\Sitecore.ThumbnailGenerator.config設定ファイルにあります。
PhantomJSを無効にするには:
-
<webroot>\App_Config\Include\フォルダに移動します。
-
たとえば、DisablePhantomJS.configという名前のパッチ ファイルを作成します。
-
次の設定を挿入します。
RequestResponse<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/" xmlns:role="http://www.sitecore.net/xmlconfig/role/"> <sitecore> <pipelines> <getScreenShotForURL> <patch:delete /> </getScreenShotForURL> </pipelines> <settings> <setting name="Sitecore.Screenshots.Enabled"> <patch:attribute name="value">false</patch:attribute> </setting> </settings> </sitecore> </configuration>
-
パッチ・ファイルを保存します。
-
<webroot>\$(dataFolder)\tools\フォルダに移動します。
-
phantomjs.exe実行可能ファイルを含むphantomjs\フォルダを削除します。