Composer での ThingWorx モデルの定義 > セキュリティ > iFrame の埋め込みマッシュアップの許可
iFrame の埋め込みマッシュアップの許可
クリックジャッキングは、攻撃者がフレームを使用してサイトを表示し、そのサイトに 1 つ以上の見えないレイヤーを貼り付けて、ユーザーが気付かないうちにその見えないレイヤーにある何かをクリックしてしまうものです。クリックジャッキングを防止するには、ページにフレームを使用しても問題がないかどうかをブラウザに指示する、サーバーからのレスポンスヘッダーが使用されます。各ブラウザのコンプライアンスが異なるため、フレームに表示できるドメインを示すために、2 つの異なるヘッダーが使用される必要があります。これらのヘッダーについて以下に説明します。ThingWorx はこれらのヘッダーを使用するため、管理者はフレーム表示を全面的に禁止したり、正当なドメインからのフレーム表示のみ、または特定のドメインからのフレーム表示のみを許可したりできます。
ヘッダーの説明
クリックジャッキングに対処するために使用するヘッダーは次のとおりです。
X-Frame-Options
DENY - サイトがページをフレームに表示しようとしても関係なく、ページはフレームに表示されません。
SAMEORIGIN - フレームのドメインがページのドメインと同じである場合にかぎり、ページはフレームに表示されます。
ALLOW-FROM http://example.com - フレームのドメインが指定されているドメインである場合にかぎり、ページはフレームに表示されます。
X-Frame-Options をサポートするブラウザのリストについては、 https://www.owasp.org/index.php/Clickjacking_Defense_Cheat_Sheet#Limitations を参照してください。
Content-Security-Policy
frame-ancestors ‘none’ - ドメインに関係なく、フレームにリソースがロードされるのを禁止します。
frame-ancestors ‘self’ - ドメインが同じである場合にかぎり、フレームにリソースがロードされるのを許可します。
frame-ancestors domain1.com domain2.com - フレームのドメインが指定されたリストに含まれる場合にかぎり、フレームにリソースがロードされるのを許可します。
コンテンツのセキュリティポリシーレベル 2 をサポートするブラウザのリストは、 http://caniuse.com/#feat=contentsecuritypolicy2 を参照してください。
ThingWorx のコンフィギュレーション
ThingWorx は HTTP リクエストフィルタの使用によって両方のヘッダーをサポートします。管理者は、ClickjackFilterDenyClickjackFilterSameOrigin、および ClickjackFilterWhiteList の 3 つのフィルタのいずれかを有効または無効にできます。これを行うには、ThingWorx アプリケーションの web.xml ファイル内にある 3 つのフィルタマッピングのいずれかをコメント解除します。
次に例を示します。
<!-- use the Deny version to exclude all framing -->
<!--
<filter-mapping>
<filter-name>ClickjackFilterDeny</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
-->
<!-- use the SameOrigin version to allow your application to frame, but nobody else -->
<!--
<filter-mapping>
<filter-name>ClickjackFilterSameOrigin</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
-->
<!-- use the WhiteList version to allow framing from specified domains -->
<filter-mapping>
<filter-name>ClickjackFilterWhiteList</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
ClickjackFilterDeny または ClickjackFilterSameOrigin の設定を変更する必要はありません。管理者が ClickjackFilterWhiteList を使用することにした場合は、許可するドメインをフィルタの "domains" パラメータ値に追加する必要があります。
次に例を示します。
<filter>
<filter-name>ClickjackFilterWhiteList</filter-name>
<filter-class>com.thingworx.security.filter.ClickjackFilter</filter-class>
<init-param>
<param-name>mode</param-name>
<param-value>WHITELIST</param-value>
</init-param>
<init-param>
<param-name>domains</param-name>
<param-value>http://media-pc:8080
http://192.168.152.133:8080 http://domainY.com</param-value>
</init-param>
</filter>
指定するドメインは、スキーム (HTTP) を含んでいるスペース区切りリストのフォーマットである必要があります。上記のドメインリストは、すべてのブラウザに使用できます。