Фреймы моего фрейма — мои фреймы

от автора

Вассал моего вассала мой вассал. Смутно помню что значит вассал но звучит круто, поэтому и перевожу свою статейку о неправильной работе с фреймами во всех браузерах. (читать в оригинале чтобы получить больше лулзов от borat-english)

Суть такова, когда вы вставляете фрейм чужого сайта в свой сайт вы имеете доступ к внутренним фреймам этого фрейма. Реклама, крос доменные рисиверы, «Like» кнопки и прочее. А также к фреймом этих фреймов. Любая глубина.

Также вы можете менять их адреса. Выглядит это так:
image
Но это лишь дефейс. Проблема в том что фреймы используют и для cross domain interaction. Те сайты шлют в свои фреймы данные и получают их назад. Если заменить такой компонент системы то можно воровать данные от главного сайта посланные во фрейм.
Работает на read/write транспорта через window.name — это довольно старый трюк когда фрейм ставит себе name и редиректит назад на главный origin. А можно и читать postMessage инфорацию если владелец сайта установил получателя сообщения как ‘*’

Самая изюминка что это поведение считается нормой и работает в IE, Chrome, FF, Safari etc.
Вот приложение на синатре демонстрирующее векторы.

Не доверяйте своим фреймам.

ссылка на оригинал статьи http://habrahabr.ru/post/169759/


Комментарии

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *