__proto__、constructor、prototypeを入力キーとして許可しない
深いマージを行うライブラリを更新する
スキーマ検証を実施する
辞書用途ではMapを検討する
必要に応じてObject.create(null)を使う
危険なDOM Sinkへ到達するGadgetを調査する

Script Gadgetは、アプリケーションに元から存在する正規JavaScriptを、攻撃者が実行部品として悪用する攻撃です。
攻撃者が安全に見えるHTMLを注入
↓
正規JavaScriptが特定の要素を検索
↓
属性やテキストを読み取る
↓
危険な処理へ渡す
↓
コード実行
攻撃者が直接script要素を挿入しなくても成立する場合があります。
Googleの研究では、既存コードに含まれるScript Gadgetが、HTMLサニタイズやCSPなどの緩和策を回避する可能性が示されました。
Client-Side Template Injection、CSTIは、ブラウザー側テンプレートエンジンが利用者入力を文字列ではなく式として評価する問題です。
<div>
{{ user_input }}
</div>