Асинхронный Javascript и XML (AJAX) — один из новейших методов, используемых для разработки порядка веб-приложений, чтобы обеспечить богатый пользовательский опыт. Поскольку это новая технология, существует множество проблем безопасности, которые еще предстоит решить, и ниже приведены несколько проблем безопасности в AJAX.
-
Поверхность атаки больше, так как есть больше входных данных для защиты.
-
Он также раскрывает внутренние функции приложений.
-
Неспособность защитить информацию аутентификации и сеансы.
-
Существует очень узкая грань между клиентской и серверной сторонами, следовательно, есть вероятность совершения ошибок безопасности.
Поверхность атаки больше, так как есть больше входных данных для защиты.
Он также раскрывает внутренние функции приложений.
Неспособность защитить информацию аутентификации и сеансы.
Существует очень узкая грань между клиентской и серверной сторонами, следовательно, есть вероятность совершения ошибок безопасности.
пример
Вот пример для AJAX Security —
В 2006 году червь заразил почтовую службу Yahoo, использующую XSS и AJAX, которая воспользовалась уязвимостью при обработке событий загрузки Yahoo Mail. Когда было открыто зараженное письмо, червь выполнил свой JavaScript, отправив копию всем контактам Yahoo зараженного пользователя.
Руки вверх
Шаг 1 — Нам нужно попытаться добавить больше вознаграждений к разрешенному набору вознаграждений, используя внедрение XML. Ниже приведен снимок сценария.
Шаг 2 — Убедитесь, что мы перехватываем как запрос, так и ответ, используя Burp Suite. Настройки такие же, как показано ниже.
Шаг 3 — Введите номер счета, указанный в сценарии. Мы сможем получить список всех наград, на которые мы имеем право. Мы имеем право на 3 награды из 5.
Шаг 4 — Теперь давайте нажмем «Отправить» и посмотрим, что мы получим в ответном XML. Как показано ниже, три награды, которые мы имеем право, передаются нам в виде XML.
Шаг 5 — Теперь давайте отредактируем эти XML и добавим еще две награды.
Шаг 6 — Теперь все награды будут отображаться пользователю для их выбора. Выберите те, которые мы добавили, и нажмите «Отправить».
Шаг 7 — Появляется следующее сообщение: «* Поздравляю. Вы успешно завершили этот урок».
Профилактические механизмы
Клиентская сторона —
- Используйте .innerText вместо .innerHtml.
- Не используйте eval.
- Не полагайтесь на логику клиента для безопасности.
- Избегайте написания кода сериализации.
- Избегайте динамического построения XML.
- Никогда не передавайте секреты клиенту.
- Не выполняйте шифрование в коде на стороне клиента.
- Не выполняйте логику, влияющую на безопасность, на стороне клиента.
Сторона сервера —