return 403 и Мозилла

AllStory nginx-forum на nginx.us
Ср Мар 2 11:48:43 MSK 2011


Честно говоря, если бы мне кто-то об
этом сказал, не поверил бы. Случайно
обнаружил вчера, и был мягко сказано
очень удивлен. Речь идет о злосчастном
хотлинке онлайн видео. Не знаю, то л и у
меня такая продвинутая Мозилла ))) то ли
это действительно имеет место быть.
Подробнее:

Прописана защита от хотлинкинга:

location ~*
^.+\.(doc|xls|exe|pdf|dat|ppt|txt|mid|midi|wav|rtf|wmv|svg|js|css|mp3|ogg|mpe?g|avi|flv|mp4|zip|gz|tgz|tbz|bz2?|rar|tar)$
{
root /home/username/www/sitename.ru;
valid_referers none blocked server_names ~\.google\. images\.yandex\.ru
~\.yandex\.;
if ($invalid_referer) {
return 403;
}
}

Работает идеально, но... Если например
видео flv кто-то вставляет в флэш плеер
на стороннем сайте, т.е. использует
приямую ссылку на это видео для своего
плеера, то происходит следующее:
При попытке проиграть это видео из
Оперы, плеер выдает ошибку, так и должно
быть.
То же самое из ослика (к слову об ослах,
сейчас стоит 9 осел - ну тупой и еще
тупее, по сравнению с той же 8, девятка
еще тот отстой, хотя и использую осла
только для проверки на
кроссбраузерность).
А теперь самое интересное - Мозилла.
Заходим в нее, нажимаем во флэш плеере
левого сайта на проигрывание, и во-аля,
ролик, который во всех остальных
браузерах блокируется по 403, здесь
проигрывается за милую душу.
Сначала думал, что где-то ошибся,
перепроверил раз десять код,
перепроверил на других сайтах,
используя хотлинк на видео, везде то же
самое. Мозилла кушает это видео
спокойно, ей return 403 нипочем.

Для проверки, рядом с плеером на левом
сайте, в котором используется
хотлинк-видео, прописываю этот же видео
файл, в качестве простой активной
хотлинк-ссылки. Пробуем. Плеер
прогрывает свободно, при нажатии же на
ссылку (ну типа скачать по прямой
ссылке), вываливается 403, как и
положено.

Делаем другой шаг. Меняем в конфиге nginx
"return 403" на реврайт с заглушкой. Пробуем.
Теперь защита от хотлинкинга работает
и даже мозилла не может проиграть файл,
что естественно, ведь идет
переадресация. 

Исходя из всех этих опытов получается,
что именно return 403 и именно мозилла
обходит свободно. Но тогда вопрос - как
такое возможно? Я этого так и не могу
понять. Пришлось пока все медийники
ставить на реврайт с заглушкой.

Кто-нибудь может повторить этот опыт,
или было такое у кого-нибудь? Или это
моя мозилла такая хакерша ))))

Posted at Nginx Forum: http://forum.nginx.org/read.php?21,179623,179623#msg-179623




Подробная информация о списке рассылки nginx-ru