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

в 2:38, , рубрики: html, Веб-разработка, информационная безопасность

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

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

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

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

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

Автор: Chikey

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js