2011-02-16 2 views
6

В IE и Chrome, если ваш объект swf запрашивает url (например, файл mp3), он также передаст HTTP_REFERER в запросе. HTTP_REFERER будет URL-адресом объекта swf.Flash в Firefox не отправляет значение HTTP REFERER

Этого не происходит в Firefox. HTTP_REQUEST всегда пуст.

Это какой-то вариант в коде swf, ошибка во флеше или ограничение браузера? И есть ли способ преодолеть это?

Заранее спасибо.

+0

Я думаю, что нет обходного пути. Я видел, как люди добавили URL текущей страницы в отдельный параметр, а не –

+2

Эта ошибка была активна в bugzilla в течение трех лет. :(https://bugzilla.mozilla.org/show_bug.cgi?id=410904 – Amalgovinus

+0

Полностью завинчивает защиту от горячих ссылок/пиявок на некоторых хостах. Это действительно нужно изучить. – Unsigned

ответ

3

Одинаковая проблема здесь, После некоторого исследования, похоже, 3-летняя ошибка от мозиллы, как указано ранее @Amalgovinus.

Мы нашли решение для этого выполнить запрос POST вместо запроса GET внутри вспышки. Вы также должны пройти фальшивые данные, как вспышка будет автоматически изменять ваш запрос POST на GET, если нет никаких ДАННЫХ отправить по запросу здесь приведен пример флэша-код, чтобы сделать эту работу:

var url = "http://exemple.com/myNotHotlinkedSong.mp3"; 
var myRequest:URLRequest = new URLRequest (url); 
myRequest.method = URLRequestMethod.POST; 
// add some data to the request to force the use of POST inside flashPlayer 
myRequest.data = "fake=fake"; 

теперь мы счастливы чтобы использовать наш .htaccess, чтобы избежать hotlinking даже в FF, надеюсь, что другие найдут это полезным.

Смежные вопросы