Даже без for (;;); как бы злоумышленник получить данные?
Атаки основаны на изменении поведения встроенных типов, в частности Object и Array , путем изменения их функции конструктора или его прототипа . Затем, когда целевой JSON использует конструкцию {...} или [...] , они будут собственными версиями этих объектов злоумышленника с потенциально неожиданным поведением.
Например, вы можете взломать свойство-установщик в Object , которое будет выдавать значения, записанные в объектных литералах:
Object.prototype.__defineSetter__('x', function(x) {
alert('Ha! I steal '+x);
});