Чтение других доменов с помощью



Чтение других доменов с помощью дескриптора IFRAME и document.execCommand

Эксперт в области безопасности броузеров Георгий Гунински (Georgi Guninski) обнаружил несколько случаев нарушения модели доменной безопасности, предотвращающей обмен данными между доменами.
При реализации кода Георгий часто использовал дескриптор iFRAME, который уже упоминался выше. Этот дескриптор является расширением стандарта HTML 4.0. В отличие от стандартного дескриптора FRAME, i FRAME позволяет создать плавающий фрейм, который располагается посредине обычной Web-страницы, не содержащей фреймов, подобно вставленному в нее изображению. Это довольно простой способ вставки содержимого других узлов (и даже файловой системы) внутрь Web-страницы, который прекрасно подходит для скрытого получения доступа к данным других доменов.
Описываемая реализация представляет собой замечательный пример. В исходном файле дескриптор I FRAME служит для задания локального файла. Затем в I FRAME вставляется код JavaScript, который выполняется в домене файловой системы. Если нечестный оператор Web-узла знает имя файла (или может о нем догадаться) и его местоположение, то при желании он сможет просмотреть файл любого типа, который может быть открыт в окне броузера. Например, файл winnt\repair\sam._ таким способом прочитать не удастся, поскольку при этом на экран будет выведено диалоговое окно загрузки файла IE. Георгий представил пример кода, который считывает файл C:\test.txt (при условии, что он существует на диске пользователя).



Содержание раздела