Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > API приложений и сред

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 02.05.2015, 13:52
bulavka вне форума Посмотреть профиль Отправить личное сообщение для bulavka Найти все сообщения от bulavka
  № 1  
Ответить с цитированием
bulavka

Регистрация: Jun 2014
Сообщений: 27
По умолчанию Защита от запуска не из приложения

Добрый день, заинтересовался, кто-нибудь вообще защищается от того, что IFrame приложение могут запустить не из приложения, а на прямую из браузера, словив необходимые параметры.
Расскажите, как вы от этого защищаетесь

Старый 02.05.2015, 14:12
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 2  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Зачем это вообще? Смысл кому-то запускать его не из контакта если все равно туда передадутся его же параметры? Это чрезмерная забота о безопасности.
Но если уж надо, то можно, к примеру, запросить адрес страницы, с которой он запущен через внешний интерфейс, и сравнить с захардкоженным url своего приложения
Код AS3:
if (ExternalInterface.available) {
   var myURLs:Array = ["http://vk.com/app777", "https://vk.com/app777"];
   var url:String = ExternalInterface.call("window.location.href.toString");
   if (myURLs.indexOf(url) < 0) {
       // тут код, который посылает этого кулхацкера на все 4 и рубит дальнейшее исполнение
   }
}


Последний раз редактировалось caseyryan; 02.05.2015 в 14:27.
Старый 02.05.2015, 19:25
bulavka вне форума Посмотреть профиль Отправить личное сообщение для bulavka Найти все сообщения от bulavka
  № 3  
Ответить с цитированием
bulavka

Регистрация: Jun 2014
Сообщений: 27
Ну тогда уж так надо, мне кажется.
Код AS3:
if (ExternalInterface.available) {
   var myURL:String = "://vk.com/app777";
   var url:String = ExternalInterface.call("window.location.href.toString");
   if (url.indexOf(myURL) == -1) {
       // тут код, который посылает этого кулхацкера на все 4 и рубит дальнейшее исполнение
   }
}


Последний раз редактировалось bulavka; 02.05.2015 в 20:35.
Старый 02.05.2015, 19:28
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 4  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Цитата:
Ну тогда уж так надо, мне кажется.
Что нужно делать, когда кажется?)
На самом деле я неспроста написал именно с массивом. Если написать так:
Код AS3:
url.indexOf(myURL) !=1
То юзер не сможет запустить приложение, если, к примеру, в нем будет добавлено упрощенное имя, вместо
app777 будет, скажем, http://vk.com/supergame а в массив можно затолкать все возможные варианты. Часто бывает так, что ссылка на приложение, где-то на стене будет обычная, а в каталоге или в меню слева упрощенная

Старый 02.05.2015, 19:50
bulavka вне форума Посмотреть профиль Отправить личное сообщение для bulavka Найти все сообщения от bulavka
  № 5  
Ответить с цитированием
bulavka

Регистрация: Jun 2014
Сообщений: 27
а как же ссылки типа vk.com/app777_123, vk.com/app777#hash?)
На них ведь будет ругаться, если я не забыл, как работает indexOf в данном случае

Старый 02.05.2015, 20:25
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 6  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Тут можно комбинировать 2 способа. Главное что в одной строке не получится все держать

Старый 02.05.2015, 20:41
bulavka вне форума Посмотреть профиль Отправить личное сообщение для bulavka Найти все сообщения от bulavka
  № 7  
Ответить с цитированием
bulavka

Регистрация: Jun 2014
Сообщений: 27
window.location.href.toString возвращает адрес моего IFRAME приложения, то есть не vk.com/app..., а http://mysite/app.php....
Кажется, нужно что-то
PHP код:
$_SERVER['HTTP_REFERER']) 

Старый 02.05.2015, 21:10
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 8  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Можно просто сделать привязку к vk api, и толку от запуска с отдельного сайта не будет. Там все равно не будут вызываться контактовские методы

Старый 02.05.2015, 21:16
bulavka вне форума Посмотреть профиль Отправить личное сообщение для bulavka Найти все сообщения от bulavka
  № 9  
Ответить с цитированием
bulavka

Регистрация: Jun 2014
Сообщений: 27
Ну да, тоже склоняюсь к такому решению, в старой версии приложения именно это и не позволяло запускать откуда не следует.

Старый 03.05.2015, 13:16
undefined вне форума Посмотреть профиль Отправить личное сообщение для undefined Найти все сообщения от undefined
  № 10  
Ответить с цитированием
undefined

Регистрация: Oct 2006
Сообщений: 2,283
смотреть надо
document.referrer т.к. Фейсбук, например, не дает доступа ко всему что за пределами IFrame приложения находится. Как с ВК не знаю,думаю так же.


Последний раз редактировалось undefined; 03.05.2015 в 13:53.
Создать новую тему Ответ Часовой пояс GMT +4, время: 01:00.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 01:00.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.