KDOC 644: Recordを外部値がくるところで使うとプロトタイプを書き換えられる
この文書のステータス
- 作成
- 2026-10-03 貴島
- レビュー
- 2026-10-03 貴島
概要
TypeScriptのRecord型は型だけの存在で、実行時の値はプロトタイプを持つ普通のオブジェクトである。
Record<Keys, Type>はプロパティのキーがKeysであり、プロパティの値がTypeであるオブジェクトの型を作るユーティリティ型です。
オブジェクトはプロトタイプを持つので、 Record の値に外部から来たキーで書き込むと、プロトタイプを書き換えられる。
Object Security
Setting user-provided key-value pairs on an Object may allow an attacker to override the object’s prototype, which can lead to object injection attacks or prototype pollution attacks. Like the accidental keys issue, this can also be mitigated by using a null-prototype object.
関連
- 追加調査: プロトタイプ汚染を試す