Просмотр полной версии : Как определить Referer при отправке данных флешом (LoadVars)
Есть сайт A, который подгружает флеш с другого сайта B.
Это флеш отправляет данные с помощью LoadVars php-скрипту на сайт B.
Чтобы некий "не хороший человек" не мог отправлять левые данные, я хотел определить peferer и таким образом узнать что данные отправила флешка загруженная именно с сайта B.
Но выяснилось, что peferer при этом отсутствует. Есть ли какие другие решения?
Прикладывай свой референс, отправляя __url рута, обрезая его, как надо. А вообще я не очень понял расстановку, флэшку в домене В пишшь ты?
Флешку я пишу. Но посмотрев, что она отправляет и куда, любой может сам отправить данные, в том числе и измененный _root.url. Если бы было так все просто, я бы не спрашивал :)
Выходит, узнать, что данные пришли от www.b.ru/flash.swf не возможно, только если в сами данные эту информацию не вставить.
урл рута, хмм.
А есе просто в строке броузера кинут данные и приатачать урлРута??
неа, не катит
На сайте В зарег сессию. (есе кнешна ты можеш)
Перед отсылкой данных сделай запрос на получения некого ключа(генериться в сессию).
С этим ключом отсылаеш данные. Время жизни ключа поставь на 3сек, или чтот подобное.
Тут прявязка к сесии, данные кодируються ключом. Из адресной строки неуспееш ниче сделать, как не старайся
Правда, мона повесить маппер на порте броузера, но это уже сложнее.
В промежутке мужду загрузкой флеша с сайта B и отправкой обратно информации, продолжает грузиться контент сайта B. Сколько времени пройдет между загрузкой и отправкой, таким образом узнать не получиться.
Прицепи хедер с помощью addRequestHeader, я просто не помню, какой. Но это можно найти. По идее тот рефферент, что в $_SERVER, передается приложением, и браузеры генерят его стопудово, а вот прочие приложения -- как хотят
Прицепи хедер с помощью addRequestHeader, я просто не помню, какой. Но это можно найти. По идее тот рефферент, что в $_SERVER, передается приложением, и браузеры генерят его стопудово, а вот прочие приложения -- как хотят
Ну все, вопрос снят.
Если я смогу внутри флеша переопределить refere, то это может сделать любой и смысл проверять его отпадает.
Отсутствие результата тоже результат :)
а причиной его использования что было? мона поинтересоваться?
Обработка только тех данных пришедших из флеша, загруженного с определенного урла.
данных пришедших из флеша, загруженного с определенного урла.
а есе данные вмонтировать внутрь флеши, загруженного с определенного урла. Ты небудеш уверен в их подлиности?
ЗЫ: или флеша должна делать запрос и ты хочеш быть уверен что это зделала флеша, загруженного с определенного урла?
а не подходит в этом случае LocalConnection ?
ЗЫ: или флеша должна делать запрос и ты хочеш быть уверен что это зделала флеша, загруженного с определенного урла?
Вот именно.
Если посмотреть что отслылает флеш и куда, можно сделать свою флешку которая отправляет совсем другие данные.
а не подходит в этом случае LocalConnection ?
Можешь мысль развить?
насколько я понял, все дело происходит с двумя флэшками работающими на одном компе? тогда локалконекшн и не разрешать конектиться с других доменов.
насколько я понял, все дело происходит с двумя флэшками работающими на одном компе? тогда локалконекшн и не разрешать конектиться с других доменов.
Нет, флешка одна.
Вот именно.
Если посмотреть что отслылает флеш и куда, можно сделать свою флешку которая отправляет совсем другие данные.
дык повторюсь.
На сервере регистрируеш сесию. Броузер ее получает, есе загрузил внутрь флешу, она будет превязана к данной сесии.
Во время передачи данных генериш ключ, и отсылаеш его флешке, он им криптует данные и отсылает назад.
Есе данную флешку запустить отдельно от броузера(просто с харда, как я понимаю в этом проблема?), она не будет привязана к сесии, и проверку не пройдет.
Есе запустить ее намана в броузере, получить ключь, декомпильнуть, и ключем криптонуть данные и отослать. На это нуна время. Есе ключ будет активен пару сек, тада твоя проблема решена.
Или чота не так??
айНилс, увы, это совершенно не способ защиты. Проще тогда уж посылать ключ, который знать будешь только ты, сверять его в php, действовать accordingly...
Однако такая уж хитрая штука все эти сетевые манипуляции, что можно прикинуться дядей Васей и посмотреть то, что отправил другой, а то и отправить самому.
Тут скорее надо читать Essential PHP Security, чем думать о флэшовых средствах.
Поговорил с матерыми php кодерами. Матерые php кодеры сказали, что дело все это зависит так же и от настроек Апача, а значит, жопа это, а не метод проверки. Вот так.
вообщем твой сайт кроме генерации ключа должен использовать https-протокол!
Снифер повесить мона, разгребсти геморно.
Остановились (я не один над этим думал) на том, что скрипт который генерит код для html, отдает туда уникальный ключ, который флешка возращает с данными. Ключ будет активен некоторое время. При приходе данных, скрипт сверяет ключ с теми что выдывал и время выдачи.
В принципе достаточно. Основной смысл был в том, что бы нельзя было посылать массово данные в цикле.
И все же отправлять sid ака идентификатор сессии со стороны пхп и привязывать оный ко всем запросам от флэшки.
Тогда схема (в простейшем виде) такая:
Страница ввода логина/пароля -> скрипт php, стартующий сессию и генерящий страницу с флэшкой и вписаным sid'ом -> флэш вставляет sid во все отданные данные -> скрипт php проверяет, была ли запущена такая сессия с того адреса, откуда пришел запрос и там уж делает, что ему надо.
И все же отправлять sid ака идентификатор сессии со стороны пхп и привязывать оный ко всем запросам от флэшки.
Тогда схема (в простейшем виде) такая:
Страница ввода логина/пароля -> скрипт php, стартующий сессию и генерящий страницу с флэшкой и вписаным sid'ом -> флэш вставляет sid во все отданные данные -> скрипт php проверяет, была ли запущена такая сессия с того адреса, откуда пришел запрос и там уж делает, что ему надо.
неа ни так.
2iNils есе нуна - есть алгоритм crypt/decrypt на стороне флеша и пхп
Всем большое спасибо за советы. :)
Уже решено использовать метод описанный в посте 20.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.