文章链接
js语言和框架-JavaScript语言-原型、原型链和继承
面5笔5什么是原型污染?原型污染的解决方案有哪些?
原型污染是指:攻击者通过某种手段修改 JavaScript 对象的原型。
原型污染的解决方案有:
1.使用 Object.create(null) 方法创建一个原型为 null 的新对象,这样无论对 原型做怎样的扩展都不会生效。
2. 使用 Object.freeze(obj) 冻结指定对象,使之不能被修改属性,成为不可扩展对象。
3. 建立 JSON schema ,在解析用户输入内容时,通过 JSON schema 过滤敏感键名。
4. 规避不安全的递归性合并。这一点类似 lodash 修复手段,完善了合并操作的安全性,对敏感键名跳过处理。