|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
24.07.2012, 13:41 | #1 |
php / delphi
Форумчанин
Регистрация: 10.06.2007
Сообщений: 175
|
Контроль внедрения через iframe на сторонних ресурсах
Доброго дня всем форумчанам!
Подскажите пожалуйста, как можно решить следующую задачку: Допустим на нашем сайте есть некая страничка с видеоплеером http://example.com/player.php, которая предназначена для внедрения на сторонние ресурсы, но не на все подряд, а лишь на те, которые мы сами разрешаем. Внедрение решили сделать через iframe (максимально просто для сторонних ресурсов и довольно надежно). И вот возник самый главный вопрос, а как теперь контролировать, на какие домены внедрена наша страничка. Если сводить задачу в следующей: "Как узнать, с какого домена загружена через iframe страница http://example.com/player.php?", то пытались так: --------------------------------------- Попытка №1: На странице http://example.com/player.php js-скрипт пытался прочитать window.top.location.host, и в случае, когда внедрение происходит не на example.com, браузерная консоль справедливо ругается: Permission denied to access property 'host' Все понятно, лавочку давно прикрыли. Политика безопасности, все дела... --------------------------------------- Попытка №2: На странице http://example.com/player.php на сервере считывался хттп-заголовок "REFERER" (содержит адрес страницы, с которой прилетел запрос), PHP код:
--------------------------------------- Попытка №3 (чисто теоретически): В принципе, удаленному ресурсу можно выдавать некий секретный токен, который меняется ежедневно (кому выдается токен уже проще контролировать). Вопрос только как удаленный ресурс его будет передать его в iframe (напомню, нужно html-copy-past-решение). В принципе, можно вставлять некий js-код, который динамически генерирует iframe, добавляя токен в GET-параметры: Код HTML:
<iframe width="480" scrolling="no" height="384" style="border: 2px solid #778899;" src="http://example.com/player.php?secret_token=254ldfkng"> </iframe>
G.Azamat { Web Development / Computer simulation }
Начинающий программист думает, что в килобайте 1000 байтов, а законченный уверен, что в километре 1024 метра. |
24.07.2012, 18:12 | #2 |
Форумчанин
Регистрация: 03.12.2010
Сообщений: 334
|
на фреймах однозначно идентифицировать сайт-получатель не получится, а токен может просмотреть каждый желающий и если надо, парсить его каждый день и юзать в своих целях.
надо менять схему. |
26.07.2012, 23:38 | #3 |
php / delphi
Форумчанин
Регистрация: 10.06.2007
Сообщений: 175
|
Спасибо, но кажись выкрутиться можно. Как же сразу не сообразил, что однозначно идентифицировать и не надо!
Будем читать заголовок REFERER, и если удаленный домен в списке разрешенных хостов, либо не определен, то показываем страницу, в противном случае - блокируем. Т.е. если посторонний сайт вздумает внедрить себе нашу страницу, то посмотреть его смогут лишь ~ 5-10% его посетителей, у которых дурной браузер не отправляет REFERER. Теперь весь вопрос лишь в том, сможет ли посторонний сайт (js/flash - скриптом например) вырубить всем своим посетителям отправку REFERER? Я такого вроде не встречал, но может кто/что видел.
G.Azamat { Web Development / Computer simulation }
Начинающий программист думает, что в килобайте 1000 байтов, а законченный уверен, что в километре 1024 метра. |
28.07.2012, 19:28 | #4 |
Форумчанин
Регистрация: 03.12.2010
Сообщений: 334
|
я бы не стал заморачиваться скриптами, чтоб вырубить посетителям отправку REFERER, а просто стягивал бы у тебя данные curl'ом (не указывая REFERER) и отдавал их своим посетителям удобным для меня способом.
потому здесь наверно все зависит от цены вопроса - если утечка 5-10% допустима, то незачем вообще заморачиваться с защитой, можно просто приклеить табличку "моё. не трогать!", а поле REFERER использовать только для контроля - если хост не входит в список разрешенных, то скидываем сообщение себе на e-mail, потом заходим на этот сайт ручками, находим контакты владельца и просим убрать свою собственность с его сайта. На крайняк, можно заверить нотариально свое правообладание и на особо несговорчивых товарищей подавать в суд. если же утечку допускать не хотите, надо менять схему. |
29.07.2012, 16:56 | #5 | |
php / delphi
Форумчанин
Регистрация: 10.06.2007
Сообщений: 175
|
Цитата:
Да, наверное, самое умное - уведомлениями решить проблему ) Еще умнее было бы не жадничать, а вообще перенаправить пользователей с постороннего сайта на наш. Так и сделаем, спасибо )
G.Azamat { Web Development / Computer simulation }
Начинающий программист думает, что в килобайте 1000 байтов, а законченный уверен, что в километре 1024 метра. Последний раз редактировалось InternetStranger; 29.07.2012 в 16:58. |
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Программа "Контроль запуска сторонних приложений локально" | ImmortalAlexSan | Фриланс | 4 | 05.06.2012 10:35 |
WEB программисту-Требуется форма с запросом (наверное через iframe) | allpc | Фриланс | 0 | 26.11.2010 15:09 |
Запрет внедрения в процесс | yres51447 | Общие вопросы Delphi | 1 | 23.03.2010 17:45 |
должен подгрузиться скрипт который бы создал и вставил в этот див <iframe></iframe> | Beni | JavaScript, Ajax | 1 | 05.08.2009 14:30 |
загрузка страницы через iframe | Vento | JavaScript, Ajax | 6 | 25.07.2008 17:10 |