Lightning Web Components 開発者ガイドのセキュアなコードの開発のところ。Lightning LockerとLightning Web セキュリティ (LWS) の話です。
セキュアなコードの開発 | Lightning Web Components 開発者ガイド | Salesforce Developers
Lightning Locker のセキュリティ
Lightning LockerはLightning Aura Componentのときのセキュリティの仕組み。Spring '22 より、Lightning Web コンポーネント用 Lightning Locker から LWS への置き換えられたので、Aura開発するのでなければそういう仕組みがあったと覚えておけばOKっぽい。
Lightning Web セキュリティ
LWC開発の場合はこちらがメインの仕組み。有効化されていれば自動で適用されるので特別な宣言方法を覚えたりは不要。(仕組みの使用部分、詳細については開発者ガイドに細かく書かれているようです。)
Lightning Web Security でサポートされるコンポーネント
設定→Lightning コンポーネントを選んで・・と書いてありますが、まとめると、Auraコンポーネントは適応対象外、LWCとなっているコンポーネントが適用される。コンポーネントが0件の場合はLightning Web Securityは組織に影響を与えませんとのこと。
Lightning Web セキュリティを有効にするタイミング
少し重要そう。Experience Cloudを使っている場合は影響あるかも。Sandboxで動作確認しましょうとの記載。(既存機能に影響がでるイメージはないけど、運用組織で開発するときにはチェックが必要?)
組織での Lightning Web セキュリティの有効化
自動で有効になっているものだと思っていましたが、設定で有効化して初めて動作するようになります。ただし、新しい組織の場合はデフォルトで有効化されています。
有効化の場所は設定→セッションの管理。ここで有効化のチェックボックスがあります。長年使っている組織ではチェックOFFになっているかもなので、LWC開発を始めるときには、Sandboxで有効化。動作確認をするのが安全とのこと。
スクラッチ組織での LWS の有効化および無効化
新しい組織ではデフォルトで有効化される。この仕様はスクラッチ組織にも適用されるとのこと。なので基本は気にしなくてOK。理由があって無効化したい場合は定義ファイルで作成時に無効化をデフォルトにできるとのこと。
Lightning Web セキュリティ用 ESLint ルールのインストール
「新たに開発された ESLint ルールは、Lightning Web セキュリティを利用したコードの作成に役立ちます。開発マシンにインストールして、ソースコードで実行できます。」とのことで、開発環境に追加する作業を行ったほうが良いとのこと。詳細の確認はまた今度。
LWS での iframe コンテンツへのアクセス
「Winter ’23 以降、Lightning Web コンポーネントが iframe 要素内のコンテンツにアクセスできるのは、コンテンツのオリジンが同じ場合です。オリジンが異なるコンテンツへのアクセスは、Web ブラウザによって防止されます。」とのこと。・・・また今度確認する。
コンテンツセキュリティポリシー
LWC開発時の基本ルール。
厳格なCSP制限
セッションの設定でオン・オフできる。理由がなければオンにしておく。
まとめ
セキュアなコードの開発はこんな感じの内容がまとめられていました。