/ stream.nieuweinstituut.nl / node_modules / @hapi / bourne /

[ICO]NameLast modifiedSizeDescription
[PARENTDIR]Parent Directory  -  
[DIR]lib/2 years ago -  
[TXT]LICENSE.md40 years ago1.4K 
[TXT]README.md40 years ago1.8Kd768d73 docs [كارل مبارك]
[   ]package.json2 years ago1.5K3e510ca test new git [كارل مبارك]
README.md

Bourne. JSON Bourne.

JSON.parse() drop-in replacement with prototype poisoning protection

Build Status

Introduction

Consider this:

> const a = '{"__proto__":{ "b":5}}';
'{"__proto__":{ "b":5}}'

> const b = JSON.parse(a);
{ __proto__: { b: 5 } }

> b.b;
undefined

> const c = Object.assign({}, b);
{}

> c.b
5

The problem is that JSON.parse() retains the __proto__ property as a plain object key. By itself, this is not a security issue. However, as soon as that object is assigned to another or iterated on and values copied, the __proto__ property leaks and becomes the object's prototype.

API

Bourne.parse(text, [reviver], [options])

Parses a given JSON-formatted text into an object where:

Bourne.scan(obj, [options])

Scans a given object for prototype properties where:

Apache/2.4.38 (Debian) Server at www.karls.computer Port 80