Честно говоря, если бы мне кто-то об этом сказал, не поверил бы. Случайно обнаружил вчера, и был мягко сказано очень удивлен. Речь идет о злосчастном хотлинке онлайн видео. Не знаю, то л и у меня такая продвинутая Мозилла ))) то ли это действительно имеет место быть. Подробнее:
Прописана защита от хотлинкинга:
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 и именно мозилла обходит свободно. Но тогда вопрос - как такое возможно? Я этого так и не могу понять. Пришлось пока все медийники ставить на реврайт с заглушкой.
Кто-нибудь может повторить этот опыт, или было такое у кого-нибудь? Или это моя мозилла такая хакерша ))))