Co-authored-by: Eduardo San Martin Morote <posva@users.noreply.github.com>
expect('decoding "%"').toHaveBeenWarnedTimes(1)
})
+
+ it('ignores __proto__', () => {
+ const query = parseQuery('__proto__=1')
+ expect(query.__proto__).toEqual(Object.prototype)
+ expect(query.constructor).toEqual(Object)
+ })
+
+ it('ignores build-in methods', () => {
+ const query = parseQuery('toString=1')
+ expect(query.toString).toEqual(Object.prototype.toString)
+ })
})
// allow the = character
let eqPos = searchParam.indexOf('=')
let key = decode(eqPos < 0 ? searchParam : searchParam.slice(0, eqPos))
+
+ // this ignores ?__proto__&toString
+ if (Object.prototype.hasOwnProperty(key)) {
+ continue
+ }
+
let value = eqPos < 0 ? null : decode(searchParam.slice(eqPos + 1))
if (key in query) {