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

セキュアなコード記述のための LockerService ルール

LockerService は、Lightning コンポーネントのための強力なセキュリティアーキテクチャです。LockerService では、個々の Lightning コンポーネントが各自のコンテナで分離されるためセキュリティが向上します。また、LockerService では、コードのサポート機能が向上するベストプラクティスが促進されます。これは、サポートされる API へのアクセスのみを許可し、公開されていないフレームワーク内部へのアクセスを排除することで実現します。

LockerService は、コードのさまざまなセキュリティ機能を適用します。

JavaScript ES5 の厳格モードの適用
JavaScript ES5 の厳格モードが暗黙的に有効になります。コードで "use strict" を指定する必要がありません。var キーワードを使用した変数の宣言や、JavaScript コーディングのその他のベストプラクティスなどが適用されます。コンポーネントが使用するライブラリも厳格モードで動作する必要があります。
DOM のアクセスコンテインメント
コンポーネントは、DOM をトラバースし、このコンポーネントによって作成された要素のみにアクセスできます。この動作により、アンチパターンが、他のコンポーネントが所有する DOM 要素に到達できなくなります。
コンテンツセキュリティポリシー (CSP) の厳格化
LockerService は CSP を強化し、インラインスクリプト (script-src) の unsafe-inline および unsafe-eval キーワードを削除する方法でクロスサイトスクリプティング攻撃の可能性を排除します。

IE11 では CSP がサポートされていないため、サポートされている他のブラウザを使用してセキュリティを強化することをお勧めします。

メモ

グローバル参照の制限
LockerService はグローバル参照に制限を適用します。Array など、組み込みオブジェクトにはアクセスできます。window など、組み込み以外のオブジェクトは LockerService がセキュアなバージョンを用意します。オブジェクトのこのセキュアなバージョンが、オブジェクトおよびそのプロパティへのアクセスを自動的かつシームレスに制御します。
Salesforce Lightning CLI ツールを使用して、コードをスキャンし、Lightning 固有の問題がないか調べます。
サポートされている JavaScript API フレームワークのメソッドのみへのアクセス
サポートされている公開済みの JavaScript API フレームワークのメソッドにのみアクセスできます。これらのメソッドは、https://yourDomain.lightning.force.com/auradocs/reference.app にあるリファレンスドキュメントアプリケーションで公開されています。以前はサポートされていないメソッドにアクセスできたため、サポートされていないメソッドが変更または削除されたときにコードが破損するおそれがありました。

instanceof は使用不可

LockerService が有効の場合は、複数のウィンドウまたはフレームが存在する可能性があるため、instanceof 演算子の信頼性が低下します。変数種別を判断する場合は、代わりに typeof を使用するか、JavaScript の標準メソッド (Array.isArray() など) を使用します。

重要な更新の有効化

LockerService は、今回のリリースの重要な更新です。

この更新を Sandbox 組織または Developer Edition 組織でテストして、正しい動作を確認してから本番組織で有効にすることをお勧めします。

この重要な更新を有効化する手順は、次のとおりです。

  1. [設定] から、[クイック検索] ボックスに「重要な更新」と入力して、[重要な更新] を選択します。
  2. [Lightning LockerService セキュリティの有効化] の [有効化] をクリックします。
  3. ブラウザページを更新して、LockerService の有効化に進みます。

次の組織では LockerService が自動的に有効になっています。

  • Summer '16 リリース以降に作成される新規組織
  • すべての Developer Edition 組織
  • カスタム Lightning コンポーネントのないすべての既存の組織

組織にこの重要な更新が表示されない場合は、LockerService が自動的に有効になっています。自動的な有効化は、リリース後 24 時間以内に行われます。

メモ