no-buffer-constructor
此规则在 ESLint v7.0.0 中已弃用。请使用 eslint-plugin-node
中的相应规则。
在 Node.js 中,Buffer
构造函数的行为根据其参数的类型而有所不同。将用户输入的参数传递给 Buffer()
而不验证其类型可能会导致安全漏洞,例如远程内存泄露和拒绝服务。因此,Buffer
构造函数已被弃用,不应使用。请改用生产者方法 Buffer.from
、Buffer.alloc
和 Buffer.allocUnsafe
。
规则详情
此规则不允许调用和构造 Buffer()
构造函数。
此规则的错误代码示例:
new Buffer(5);
new Buffer([1, 2, 3]);
Buffer(5);
Buffer([1, 2, 3]);
new Buffer(res.body.amount);
new Buffer(res.body.values);
此规则的正确代码示例:
Buffer.alloc(5);
Buffer.allocUnsafe(5);
Buffer.from([1, 2, 3]);
Buffer.alloc(res.body.amount);
Buffer.from(res.body.values);
何时不使用
mR2XGo0MkF1ymvgMwt9HxOLbuUq4NrHSAcsxo6YrEShmNosXjnAB5x9ewyT25J39aIHJGGpXU1kGetXbogNWlVrwNGO8bXim6d9qu2yq+weBW0/m7EVZJoggN91jVTVFi6R5Y8gltNq2Bae/B0lTKGyl4epahdlVlAHvxXIvPDrBVNavwmg6ecMOugU/ZTtXsiAbEkGZpA+I9ZmXqg9xEg==