PDA

Просмотр полной версии : Запретить встраивание флеш по url на других сайтах


Фомич
18.01.2016, 12:10
Приветствую! Есть ролик swf, который показываю на странице, со страницей все в порядке, если пользователь зарегистрирован, то этот ролик показывается ему, но ведь можно открыть этот ролик без регистрации по прямой ссылке через браузер или встроить в другой сайт. Есть ли во флеш функция проверки сайта, на котором он запущен (по сути того, что в адресной строке браузера, а не пути к ролику)?

caseyryan
18.01.2016, 12:45
URL Lock есть, чтобы не открывался с другого домена.
Но вот по поводу этого:
если пользователь зарегистрирован, то этот ролик показывается ему, но ведь можно открыть этот ролик без регистрации по прямой ссылке через браузер или встроить в другой сайт
Это должен разруливать сервер, а не флеш ролик. Открываем страницу с роликом, сервер проверяет залогинен ли пользователь, и если нет, перекидывает его на страницу входа.

Фомич
18.01.2016, 13:24
Да, сервер разруливает, но если пользователь залогиненный из кода страницы скопирует ссылку на флеш и перешлет скажем своему другу, то у того этот ролик запустится и без регистрации. Если я буду проверять stage.loaderInfo.loaderURL - это и будет тот самый urllock?

Фомич
22.01.2016, 14:37
Ок, а каким образом из флеш узнать собственное название флешки? Это поможет мне решить вышеописанное.

dark256
22.01.2016, 15:13
trace( _url )
Там и пути и имена.

Фомич
22.01.2016, 15:24
trace( _url )
Там и пути и имена.

А для AS3?

undefined
22.01.2016, 15:31
А для AS3?
http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/LoaderInfo.html#url
либо так:
var url:String=ExternalInterface.call("function() { return window.location.href;}");

Фомич
22.01.2016, 15:47
http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/LoaderInfo.html#url
либо так:
var url:String=ExternalInterface.call("function() { return window.location.href;}");

таким образом я вычисляю url страницы, где запущена swf, но требуется название самой флешки на этой странице, например test.swf или путь до нее. Их несколько и хотелось бы встроить одинаковый код.

undefined
22.01.2016, 16:10
таким образом я вычисляю url страницы, где запущена swf
только что проверил

if (ExternalInterface.available)
ExternalInterface.call("alert", this.loaderInfo.url);

выдает урл вместе с именем флэшки

Добавлено через 7 минут
совершенно не понятно как определение имени swf файла поможет защитить от встраивания флэшки на другом адресе?

Фомич
22.01.2016, 18:09
К обычному urllock по названию домена добавляю проверку по наличии имени файла в адресе и включенного js, это защищает от открытия флешки по прямой ссылке.

Добавлено через 1 минуту
Спасибо за ответы.

caseyryan
23.01.2016, 08:56
И в чем смысл этой защиты? Кому нужна эта флешка? И что произойдет от того, что кто-то встроит ее себе на сайт?
Не лучше ли просто встроить в нее логотип с названием своего сайта, и пусть рекламируют где угодно. Сдается мне, что она так то практически никому не нужна будет, если еще дополнительные препятствия для просмотра будут, то ее вообще никто не будет использовать. Времена меняются, сейчас все идут по пути максимального открытия ПО, а не закрытия.

Фомич
23.01.2016, 15:50
Потому что не могут предложить чего-нибудь полезного, вот и открывают доступ, в данном случае выгоднее показывать эти флешки только после регистрации на сайте.

Спасибо за мотивацию)