Угон Javascript, когда и сколько мне волноваться? - PullRequest
1 голос
/ 21 июля 2011

Хорошо, поэтому я разрабатываю веб-приложение, которое стало более адаптированным. Затем я прочитал блог, в котором говорилось о угоне javascript , и я немного озадачен тем, когда на самом деле это проблема. Я хочу немного разъяснений

Вопрос 1: Это проблема / уязвимость?

Если мой сайт возвращает данные json с запросом GET, который имеет тогда информация может попасть в чужие руки.

Я использую ASP.NET MVC, и метод, который возвращает JSON, требует, чтобы вы явно разрешали json получать запросы. Я предполагаю, что они пытаются спасти непосвященных от этой уязвимости безопасности.

Вопрос 2: Происходит ли угон с помощью прослушивания / чтения ответа при его отправке через Интернет? Смягчает ли SSL эту атаку?

Вопрос 3: Это заставило меня задать этот вопрос самому себе. Если я сохраняю состояние страницы в локальном объекте (ах) javascript на странице, может ли кто-нибудь взломать эти данные (кроме зарегистрированного пользователя)?

Вопрос 4: Можно ли безопасно устранить уязвимость THIS , только возвращая JSON с запросом POST?

Ответы [ 3 ]

1 голос
/ 21 июля 2011

В сообщении, на которое вы ссылаетесь, говорится о CSRF & XSS (см. Мой комментарий к вопросу), поэтому в этом контексте:

Является ли это проблемой / уязвимостью ("Если мой сайт возвращает jsonданные с запросом 'GET', которые содержат конфиденциальную информацию, и эта информация может попасть в чужие руки. ")?

Нет.

Есть ли угон с помощью сниффинга/ чтение ответа при его отправке через Интернет?

Нет.

Если я сохраняю состояние страницы в локальном объекте (ах) javascript страницы,может кто-то похитить эти данные (кроме зарегистрированного пользователя)?

Это зависит.Это зависит от того, храните ли вы данные в файлах cookie и не указали правильный домен или путь.Это зависит от того, есть ли уязвимость в клиентском браузере, которая позволяет сценарию получать доступ к данным, которые обычно ограничены.Есть множество других векторов атаки, и новые обнаруживаются постоянно.Короче говоря, не доверяйте браузеру любых конфиденциальных или защищенных данных.

Могу ли я безопасно смягчить против НАСТОЯЩАЯ Уязвимость, только возвращая JSON с запросом 'POST'?

Нет (это не единственная уязвимость, это набор классов уязвимостей).

0 голосов
/ 21 июля 2011

Фактически уязвимость заключается в возможности перезаписи Array.

Если кто-то перезаписывает собственный массив Array, то он получает доступ к данным JSON, которые созданы как массив.

Эта уязвимость имеетбыл исправлен во всех основных браузерах.

Вам следует беспокоиться об этом, только если ваши клиенты используют небезопасные браузеры.

Пример:

window.Array = function() {
  console.log(arguments);
  // send to secret server
}

...

$.get(url, function(data) { ... });

Когда создается data, если в возвращенном JSON есть какие-либо массивы, браузер вызывает window.Array, и затем эти данные в массиве отправляются на секретный сервер.

0 голосов
/ 21 июля 2011

Ну, вы можете проверить, был ли получен запрос и был ли получен правильный ответ .

Вам не намного безопаснее получить его из POST, потому что это так же легко моделировать.

В общем, вы можете сделать много вещей, чтобы предотвратить подделку и манипуляцию между сайтами.

...