windowやdocumentを変数置き場にしない
変数を明示的に宣言する
グローバル変数を減らす
idとnameを含めてHTMLをサニタイズする
URLを型と許可リストで検証する
DOM要素と文字列を区別する
CSPを補助対策として利用する

Prototype Pollutionは、JavaScriptのプロトタイプを書き換え、多数のオブジェクトへ意図しないプロパティを継承させる問題です。
攻撃者入力
↓
Object.prototypeなどを汚染
↓
ライブラリが汚染値を設定として読む
↓
危険なDOM処理へ渡す
↓
XSS
Prototype Pollution単体は、必ずしもXSSではありません。
汚染された値をinnerHTML、スクリプトURL、テンプレート処理などへ渡すGadgetがある場合、XSSへ発展します。
OWASPは、Prototype Pollutionによってオブジェクトやプロパティが操作され、権限昇格やコード実行などへつながる可能性を説明しています。