![]() |
|
||||||||||
|
|||||
|
Регистрация: Nov 2007
Сообщений: 51
|
SWF файл movie.swf вставлен в php страницу через Swfobject.js (это обязательное условие). Ему передается обязательные параметры "menu" = "false" и "adress" = "location.href" (location.href - это то, что в данный момент находится в адресной строке браузера). Чтобы обратиться к этому ролику нужно зайти на web-страницу http ://site.ru/page.php
НО! Злоумыленники в адресной строке прописали ссылку: http ://site.ru/movie.swf?adress=http://site.ru/&menu=true Тем самым обратились к флеш ролику напрямую и передали ему параметры. Во-первых появилась возможность через меню передвигаться по кадрам (что недопустимо), во-вторых мне необходимо, чтобы пользователь находился именно на web-странице на которой расположен ролик. ВОПРОС: Каким образом SWF может определить, открыт он напрямую по ссылке http ://site.ru/movie.swf либо открыта страница http ://site.ru/page.php в которую вставлен SWF файл ? Есть мысли, что нужно определить - что написано в адресной строке браузера. Но как? Последний раз редактировалось 400kg; 08.02.2010 в 01:22. |
|
|||||
|
Модрон-ветеринар
|
Использовать вызов функции JS, узнающей URL страницы и возвращающий ее флешке. А вызывать ее с помощью ExternalInterface, при этом саму функцию писать на странице не обязательно, ее можно сгенерировать прямо изнутри флешки.
Вот весь код: import flash.external.*; System.security.allowDomain('site.ru'); var javaScriptFunction:String = 'function testUrl () { return location.href ; }'; var testUrlString:String = String (ExternalInterface.call (javaScriptFunction)); if (testUrlString == 'http://site.ru/page.php') { //дальнейшие действия, проигрываем флешку } else { stop(); //либо делаем видимым черный экран поверх всего с грозной надписью } Правда, если хулиганы додумались скормить флешке параметры, то декомпилировать и запустить ее stand-alone им тоже не принесет сильных хлопот. Но это уже так, мысли к вашему вопросу не относящиеся.. Последний раз редактировалось mooncar; 08.02.2010 в 10:22. |
|
|||||
|
Регистрация: Nov 2007
Сообщений: 51
|
Спасибо большое!
|
![]() |
![]() |
Часовой пояс GMT +4, время: 19:48. |
|
|
« Предыдущая тема | Следующая тема » |
|
|