Что такое «массивы JSON верхнего уровня» и почему они представляют угрозу безопасности?

В приведенном ниже видео во временном маркере 21:40 ведущий Microsoft PDC говорит, что важно обернуть весь JSON, чтобы он не был массивом верхнего уровня:

https://channel9.msdn.com/Events/PDC/PDC09/FT12

Каков риск разворачивания массива верхнего уровня?

Как мне проверить и проверить, уязвим ли я? Я покупаю много компонентов у третьих лиц, и у меня есть сторонние поставщики, которые разрабатывают мой код.

65 голосов | спросил random65537 17 PM00000050000003031 2010, 17:48:30

2 ответа


0

Это связано с тем, что несколько лет назад Иеремия Гроссман обнаружил очень "> интересная уязвимость, которая влияет на gmail . Некоторые люди решили эту уязвимость с помощью unparseable cruft (техническое описание мистера Бобинса на этой странице просто фантастическое.)

Причина, по которой Microsoft говорит об этом, заключается в том, что они еще не исправили свой браузер. ( Редактировать . Последние версии Edge и IE 10/11 решили эту проблему.) Mozilla считает, что это является уязвимостью в спецификации json, и поэтому они исправили ее в Firefox 3 . Для справки, я полностью согласен с Mozilla, и это прискорбно, но каждому разработчику веб-приложений придется защищать себя от этой весьма неясной уязвимости.

ответил rook 17 PM00000090000005931 2010, 21:18:59
0

Я думаю, это потому, что конструктор Array () можно переопределить. Однако эта проблема не является уникальной для массивов.

Я думаю, что атака (или один из возможных способов) примерно такая:

function Array(n) {
  var self = this;
  setTimeout(function() {
    sendToEvilHackers(self);
  }, 10);
  return this;
}

Браузер (или некоторые браузеры) используют этот конструктор для записи массива [n, n, n]. Поэтому атака CSRF может использовать вашу открытую сессию в вашем банке, ударить по известному URL-адресу JSON тегом <script>, а затем poof вы являетесь владельцем.

ответил Pointy 17 PM00000050000004031 2010, 17:58:40

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132