この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

Lightning コンポーネントでの不十分なエスケープ

バンドル内の各コンポーネントは、親コンポーネントやアプリケーションによって提供された入力、または URL パラメーターで提供された入力をサニタイズする責任があります。

個々のコンポーネントのセキュリティ境界は、コンポーネントバンドルです。バンドル内の各コンポーネントは、親コンポーネントやアプリケーションによって提供された入力、または URL パラメーターで提供された入力をサニタイズする責任があります。onInit ハンドラーでサニタイズしていない場合、公開コンポーネントまたはグループコンポーネントの属性には、攻撃者が制御する入力が含まれていることが考えられます。

入力をサニタイズしないと、クロスサイトスクリプト (XSS) 攻撃や URL リダイレクト攻撃を受ける可能性があります。

Aura の例

次の Aura コードの場合、コンポーネントは、グローバル属性のデータを参照し、エスケープが十分でない状態でそのデータをドキュメントオブジェクトモデル (DOM) に提供します。1 つのパラメーターに、悪用されやすいタグ unescapedHTML があります。ハッカーやマルウェアは、HTML または JavaScript をビューに挿入して、クロスサイトスクリプト (XSS) 攻撃をトリガーすることができます。
1<aura:component controller="name_NewsController" access="global" extends="c:name_Name" implements="force:appHostable,flexipage:availableForAllPageTypes,forceCommunity:availableForAllPageTypes">
2   <aura:handler name="baseReady" event="c:name_Name" action="{!c.doInit}"/>
3   ...
4   <aura:attribute name="newsDetails" type="String" default="" access="global"/>
5   ...
6   <div class="slds-col_padded slds-size_1-of-1 textDetail">
7      <div class="slds-text-longform">
8         <aura:unescapedHtml aura:Id="newsDetail" value="{!v.newsDetails}"/>
9       </div>
10   </div>
11   ...
12</aura:component>
次の Aura コンポーネントコードは、unescapedHTML を使用していないため安全です。
1<aura:component controller="name_NewsController" access="global" extends="c:name_Name" implements="force:appHostable,flexipage:availableForAllPageTypes,forceCommunity:availableForAllPageTypes">
2   <aura:handler name="baseReady" event="c:name_Name" action="{!c.doInit}"/>
3   ...
4   <aura:attribute name="newsDetails" type="String" default="" access="global"/>
5   ...
6   <div class="slds-col_padded slds-size_1-of-1 textDetail">
7      <div class="slds-text-longform">
8         <aura:Id="newsDetail" value="{!v.newsDetails}"/>
9       </div>
10   </div>
11   ...
12</aura:component>

詳細は、『Secure Coding Guide (セキュアなコーディングのガイド)』の「Lightning Security (Lightning のセキュリティ)」を参照してください。