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