CS Fundamentals Trainer · JavaScript · Security
Predict the output: copying a parsed payload with Object.assign versus object spread.
Predict the output: copying a parsed payload with `Object.assign` versus object spread.
const payload = JSON.parse('{"__proto__": {"polluted": "yes"}}');
const viaAssign = Object.assign({}, payload);
const viaSpread = { ...payload };
console.log(viaAssign.polluted, viaSpread.polluted);
console.log(Object.keys(viaAssign), Object.keys(viaSpread));
console.log(({}).polluted);
Difficulty: hard