MDNではプロトタイプオブジェクトを変更することは基本非推奨の扱いです。今のNode.js環境では、もちろんどちらも使えます。同一であることを利用して、他のオブジェクトのプロパティアクセスに影響を与えるやり方です。発表では、以下の3つのパターンでオブジェクトのプロトタイプ汚染が起きることが紹介されています。操作を狙ったものです。1これらに近い機能を提供するユーザモジュールの多くに、プロトタイプ汚染の脆弱性が見つかり修正されています。場合に処理をスキップする対応でした。メソッドをオーバライドしたりすることも可能です。DoSなら簡単に起こせそうです。発表では、実際のCMSサーバに対してパスワードリセットで送信するJSONを操作して攻撃を行うやり方が解説されていました。皮肉なことに、オブジェクトのプロトタイプ汚染攻撃が成功した場合に、サーバをクラッシュさせず動かしたまま攻撃するのは、なかなか難儀な技です。デモでは、様々な工夫をしてCMSテンプレートを操作してテスト用に残されているファイルに改変し、そこから任意のJavaScriptをサーバ上で実行(計算機アプリを立ち上げ)させています。APIサーバが、プロトタイプ汚染攻撃によってレスポンスが操作されるサンプルを作ってみましょう。res.send(status)});app.listen(1234);プロトタイプ汚染攻撃コードクライアントの攻撃コードは、__proto__のプロパティを持つJSONをサーバに送信するだけです。'application/json');client.end(data);攻撃結果です。対策この攻撃を緩和させる対策として、以下の3つの方法が挙げられています。改変を不可能にする方法です。副作用で動かなくなるモジュールがでるリスクがあります。