この記事の目次
Salesforce Lightning Lockerとは?

Lightningコンポーネントとは?
Lightningコンポーネントとは、Salesforce 1 Platform上でUIを構築する技術のことを指します。 この技術により、UI部品をコンポーネント化し、積み木やブロックのような感覚で素早く、直感的にアプリの構築をすることが可能となります。 また、コンポーネント化されたUI部品は、Salesforce 1 Platformで再利用することも簡単なため、効率化という面でもメリットを持っています。Salesforce Lightning Lockerの概要

JavaScriptの厳格モード
通常であれば、[use strict]をコードで指定しなければ有効にならない「厳格モード」が、暗黙的に有効となり、コードの安全性、堅牢性、サポート範囲が広がります。DOMのアクセスコンテインメント
コンポーネントは、DOMをトラバースし、同じ名前空間内のコンポーネントで作成された要素にアクセスすることしかできません。これにより、クロス名前空間アクセスのみが防止され、独自の名前空間内のクロスコンポーネントアクセスを防ぐことで、コンポーネント同士の連動性が向上し、問題の発生率の低下が見込めます。セキュアなラッパー
セキュリティ上の理由で、Lightning Lockerは、オブジェクトをセキュアなバージョンでラップしたり、非表示にして、グローバルオブジェクトの使用を制限します。 Lightning Lockerでは、コンポーネントやイベントなどのインスタンスも、ラップされたセキュアなバージョンで置き換えられます。例として、[SecureAura]や[SecureComponent]などが挙げられます。eval()関数の制限
Lightning Lockerでは、コードを動的に評価するサードパーティライブラリを使用できるようにeval()関数の使用がサポートされます。これは、名前空間のグローバル範囲でのみ適用され、eval()関数はコールされた範囲内のローカル変数にはアクセスできません。MIMEタイプのファイルの分析
Lightning Lockerは、ブラウザから送信されたMIMEタイプのファイルを分析し、一部のMIMEタイプを許可、一部のMIMEタイプをサニタイズし、残りをブロックします。JavaScript APIフレームワークメソッドへのアクセスの制限
これまでは、サポートされていないJavaScript APIフレームワークメソッドへもアクセスできたため、そのメソッドが変更や削除されたときにコードが破損するといったトラブルがありました。しかし、現在のLightning Lockerでは、サポートされている公開済みのJavaScript APIフレームワークのメソッドにのみアクセスできるようにすることで、この問題を解消しています。Lightning Lockerの注意点

Lightning Lockerの理解を深めて、より安全なUI構築を!
