Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> разрешить доступ к стр тока из приложения VK, iframe приложении 
:(
    Опции темы
jone31
  Дата 10.2.2013, 15:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 343
Регистрация: 29.11.2008

Репутация: нет
Всего: нет



есть Iframe приложение для соц сети вконтакте, подскажите как можно отсеить прямые запросы к странице приложения, и разрешить доступ только из vk iframe ?

некоторые умники все же заходят просто посмотрев какую страницу ВК загружает в iframe и открывают её...

сейчас работает на JS проверка, но её обходят наверно просто тупо удалив эту проверку... 

может кто нибудь знает, как можно таких юзеров отсеить используя что то на стороне сервера? ибо js не эффективно...

Добавлено через 7 минут и 15 секунд
есть вариант по HTTP_REFERER, но ведь у юзеров может быть отключена передача реферера или это касается только ссылок?
PM MAIL   Вверх
Arantir
Дата 10.2.2013, 16:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Рыбак без удочки
**


Профиль
Группа: Участник
Сообщений: 960
Регистрация: 18.11.2012

Репутация: 16
Всего: 55



С помощью PHP невозможно наверняка узнать, находится ли страница во фрейме.

Можно схитрить через JavaScripts.
Если window.self === window.top, то это значит, что страница не во фрейме.
Хотя надежнее будет проверить top.location.href, который, по идее, содержит то, что у пользователя в адресной строке написано.
Если этот адрес правильный (то есть это фрейм на странице вконтакте), то тогда загружать страницу с помощью AJAX.
А вот уже AJAX через PHP проверить можно. Такие запросы всегда содержат заголовок "X_REQUESTED_WITH" со значением "XMLHttpRequest".

Поскольку страницу можно будет загрузить только через AJAX, а браузеры не разрешают AJAX-запросы на чужие сайты, то пользователь сможет открыть такую страницу только с вашего сайта, который в свою очередь ее загрузит только, если находится он во фрейме на вконтакте.


Это сообщение отредактировал(а) Arantir - 10.2.2013, 16:11


--------------------
interface Жопа {
    // ATTENTION: has to be implemented by every class of the project for proper project work
}
PM   Вверх
jone31
  Дата 10.2.2013, 16:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 343
Регистрация: 29.11.2008

Репутация: нет
Всего: нет



сейчас используется window == window.top и некоторые её обходят...

если учесть что vk не работает без JS, то и юзеру без JS делать там нечего... 


Arantir, спасибо надо попробовать с ajax... 

Это сообщение отредактировал(а) jone31 - 10.2.2013, 18:03
PM MAIL   Вверх
Чучмек
Дата 10.2.2013, 17:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЭТ БИЛЭТ
**


Профиль
Группа: Участник
Сообщений: 841
Регистрация: 11.5.2008
Где: СССР

Репутация: 4
Всего: 41



А через vkAPI нельзя  никак запросить информацию о странице в которой загружен iframe???

Добавлено через 5 минут и 9 секунд
А что даст AJAX?  Хоть в главном окне, хоть во фрейме. Приложение запрашивает информацию со своего сервера. В чем разница?


--------------------
умную мысль держи при себе, а дурной - поделись с другими 
PM MAIL   Вверх
ksnk
Дата 10.2.2013, 17:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 96
Всего: 386



Цитата(jone31 @  10.2.2013,  15:25 Найти цитируемый пост)
сейчас работает на JS проверка, но её обходят наверно просто тупо удалив эту проверку... 

Вот про это чуть поподробнее. Как можно выкинуть такую проверку? 


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
Arantir
Дата 10.2.2013, 17:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Рыбак без удочки
**


Профиль
Группа: Участник
Сообщений: 960
Регистрация: 18.11.2012

Репутация: 16
Всего: 55



Цитата(Чучмек @  10.2.2013,  16:01 Найти цитируемый пост)
А что даст AJAX?  Хоть в главном окне, хоть во фрейме. Приложение запрашивает информацию со своего сервера. В чем разница? 

В заголовке, который можно проверить.
Но заголовки подделать не проблема. Как говорится, нет идеальной защиты, есть только объем средств, нужный для ее взлома.
Как минимум, все, кто открывал страницу в браузере, уже в пролете.

Наиболее надежный способ - чтобы загрузку инициировал сам сайт, на котором фрейм, неким запросом с некой хеш-подписью, созданной по алгоритму, известному только самому сайту и сайту во фрейме. Вот тогда всякие хацкеры-ламеры ничего не сделают, так как не смогут создать правильную подпись.

Я, вообще-то, в приложениях и API вконтакта не разбирался, так что не в курсе о всех тонкостях. Но если существует какой-то способ со стороны VK в обеспечении подлинности запроса, то советую такой способ поискать в инструкциях.


--------------------
interface Жопа {
    // ATTENTION: has to be implemented by every class of the project for proper project work
}
PM   Вверх
Чучмек
Дата 10.2.2013, 17:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЭТ БИЛЭТ
**


Профиль
Группа: Участник
Сообщений: 841
Регистрация: 11.5.2008
Где: СССР

Репутация: 4
Всего: 41



Цитата(jone31 @  10.2.2013,  16:31 Найти цитируемый пост)
сейчас используется window == window.top

Цитата(ksnk @  10.2.2013,  17:12 Найти цитируемый пост)
Как можно выкинуть такую проверку? 

Элементарно. Создаем *.html с 
Код

<iframe src="http://...."></iframe>

все.



--------------------
умную мысль держи при себе, а дурной - поделись с другими 
PM MAIL   Вверх
Arantir
Дата 10.2.2013, 17:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Рыбак без удочки
**


Профиль
Группа: Участник
Сообщений: 960
Регистрация: 18.11.2012

Репутация: 16
Всего: 55



Цитата(ksnk @  10.2.2013,  16:12 Найти цитируемый пост)
Вот про это чуть поподробнее. Как можно выкинуть такую проверку? 

Ctrl+K в FireFox и можно любой JS выполнить. Да, даже AJAX-запросы...
Зайдите на http://api.jquery.com/focusout/ и выполните $("div").load("/index.php"); через консоль. Ох как приколько страничка поломается после этого...


--------------------
interface Жопа {
    // ATTENTION: has to be implemented by every class of the project for proper project work
}
PM   Вверх
ksnk
Дата 10.2.2013, 17:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 96
Всего: 386



Чучмек, Тоесть чужая страница имитирует vk? Если в этом самом http:// написать проверку на наличие vk. в адресной строке top.location, не будет ли это решением?


Arantir
Выполнение скрипта в отладчике? В массовом порядке?  smile 

Ну я, конечно, понимаю, что ничего принципиально сложного нет. Можно скачать текст скрипта, текст странички, откорректировать его регулярками, поставить автоматическую коррекцию в FireBug и наслаждаться жизнью. Но это предполагает сознательное действие какого-то злоумышленника, предполагает установку дополнительного софта, слежение за выходом новых версий исходников приложения и оперативная коррекция патчилки... Можно пытаться замучить хакера просто автоматически меняя способ упаковки JS кода и периодически изменяя интерфейс клиента с сервером.


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
jone31
  Дата 10.2.2013, 17:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 343
Регистрация: 29.11.2008

Репутация: нет
Всего: нет



Цитата(ksnk @  10.2.2013,  17:12 Найти цитируемый пост)
Вот про это чуть поподробнее. Как можно выкинуть такую проверку? 

если сопоставлять логи сервера и метрику, то все происходит с использованием гугло_хрени и оперы(их консоли дают возможности править скрипты страницы)...  инфа без учета того что агент можно было подменить...

Цитата(Arantir @  10.2.2013,  16:11 Найти цитируемый пост)
Хотя надежнее будет проверить top.location.href, который, по идее, содержит то, что у пользователя в адресной строке написано.

опера грязно выругалась... 
Цитата
Uncaught exception: ReferenceError: Security error: attempted to read protected variable
alert(window.top.location.href);


PM MAIL   Вверх
Чучмек
Дата 10.2.2013, 17:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЭТ БИЛЭТ
**


Профиль
Группа: Участник
Сообщений: 841
Регистрация: 11.5.2008
Где: СССР

Репутация: 4
Всего: 41



Цитата(ksnk @  10.2.2013,  17:39 Найти цитируемый пост)
/ написать проверку на наличие vk. в адресной строке top.location

Да вроде фрейм не имеет доступа к location , как и к многому другому , при различных хостах у top и frame


--------------------
умную мысль держи при себе, а дурной - поделись с другими 
PM MAIL   Вверх
Arantir
Дата 10.2.2013, 18:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Рыбак без удочки
**


Профиль
Группа: Участник
Сообщений: 960
Регистрация: 18.11.2012

Репутация: 16
Всего: 55



Цитата(jone31 @  10.2.2013,  16:43 Найти цитируемый пост)
опера грязно выругалась... 

Да, этого можно было ожидать.
Наверное, чтобы наоборот - кто-то не открыл свой злобносайт в фрейме и не наделал пакостей основному сайту.

В общем, если сам VK не предоставляет каких-то возможностей для подобной защиты, то вряд ли что-то надежное получится.
 


--------------------
interface Жопа {
    // ATTENTION: has to be implemented by every class of the project for proper project work
}
PM   Вверх
jone31
Дата 10.2.2013, 18:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 343
Регистрация: 29.11.2008

Репутация: нет
Всего: нет



нашел в VK API auth_key - но пока не совсем понял как эффективно им воспользоваться

если у кого есть какие соображения по этому поводу, прошу поделится...

Добавлено через 6 минут и 40 секунд
хотя нет, это не то... авторизацию юзера я проверяю и так внутри...

Это сообщение отредактировал(а) jone31 - 10.2.2013, 18:18
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0826 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.