Защита от выполнения во фрейме

Вроде бы какая может быть проблема, если кто-то запустит ваше приложение внутри фрейма? Но нет, проблема действительно тут есть. Если вы разрешаете выполнение приложения во фрейме, то у хакера появляется возможность попробовать воровать донные ваших пользователей.

Вроде бы какая может быть проблема, если кто-то запустит ваше приложение внутри фрейма? Но нет, проблема действительно тут есть. Если вы разрешаете выполнение приложения во фрейме, то у хакера появляется возможность попробовать воровать донные ваших пользователей.

Допустим, что вы являетесь разработчиком Web сайта банка mysuperbank.com. Хакер регистрирует доменные имена, которые похожи на ваш, но с небольшими отличиями. Например, можно зарегистрировать mysuperbak.com. Отсутствует всего одна буква – n, но кто обращает на это внимание? Мало кто. Теперь можно разбросать в интернете ссылки на этот сайт или просто сидеть ждать, когда пользователи ошибутся в наборе адреса и случайно попадут на хакерский сайт.

Есть домен, и что теперь делать? Можно сделать копию страницы реального банка и когда пользователь нажмет кнопку отправки данных, просто сохранять имя и пароль, и перенаправлять пользователя на реальный банк. Недостаток метода – желательно поддерживать страницу и обновлять ее в зависимости от изменений на основном сайте. Да и сами затраты на создание начальной страницы тоже не пяти секундное дело.

А что если растянуть на весь экран iframe и в него загрузить сайт реального банка? Внутри фрейма пользователю все будет знакомо и выглядеть 100% естественно. Ну а хакер с помощью JavaScript сможет тырить содержимое данных внутри фрейма. Возможности JavaScript достаточно мощные и позволят хакеру делать практически все, что он захочет. Причем даже не нужно будет воровать пароль, чтобы своровать данные.

Если хакер сделает копию сайта, то вы, как владелец сайта можете сказать, что пользователь сам был виноват, что не увидел подставу и ввел свои данные на левом сайте. Но если он сделает это на вашем сайте через iFrame, то виноват будет программист и банк, потому что они могли предпринять простейшие действия с целью защиты данных пользователя.

Еще один способ воровства данных с помощью фреймов – это использовать другую уязвимость, если она есть на вашем сайте. Но для этого конечно же нужно еще и найти эту уязвимость, но допустим, что вы допустили где-то ошибку и у вас на сайте появилась уязвимость XSS. Эта уязвимость позволяет хакеру внедрять JavaScript в страницу и большинство программистов заблуждаются, считая, что максимум, что можно стыбрить таким способом – cookies.

Опять же, хакер может с помощью XSS и JavaScript спрятать основной документ, на странице, внедрить XSS и загрузить в него еще копию, которой можно управлять.

Защититься от такой атаки достаточно просто. С помощью JS проверяем, есть ли у документа Parent и если он не равен нулю, то изменяем url документа на свой. Как бы выбрасываем себя из фрейма.



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

Комментарии

Паника, что-то случилось!!! Ничего не найдено в комментариях. Срочно нужно что-то добавить, чтобы это место не оставалось пустым.

Добавить Комментарий

О блоге

Программист, автор нескольких книг серии глазами хакера и просто блогер. Интересуюсь безопасностью, хотя хакером себя не считаю

Обратная связь

Без проблем вступаю в неразборчивые разговоры по e-mail. Стараюсь отвечать на письма всех читателей вне зависимости от страны проживания, вероисповедания, на русском или английском языке.

Пишите мне