• Быстрый переход
  • Рубрики
  • Свежие записи
  • Метки
  • Архивы
  • Реклама 1
  • Реклама 2
  • Рейтинг@Mail.ru

    nginx: Защита файлов от прямых ссылок ngx_http_referer_module


    Часто, при цитировании материала с вашего сайта, адреса изображений или загружаемых файлов не изменяют. Возникает нагрузка на ваш сервер, но при этом посетитель даже не знает, откуда загружается рисунок и не видит вашего сайта.

    Наиболее гуманно будет выдавать посетителю другого сайта изображение с текстом "Это изображение доступно только на сайте www.example.com". Если ссылаются на загружаемый файл — перенаправлять на страницу загрузок вашего сайта.

    Сделать это можно с помощью модуля ngx_http_referer_module: он будет анализировать поле "Referer" (ссылающаяся страница) в запросе посетителя и сравнивать со списком разрешенных доменов. Конечно, посетитель может подделать это поле в своем запросе, но это не так просто и обычно этого никто не делает.

    Не стоит забывать, что некоторые сервисы могут использовать ваши картинки, принося вам пользу в виде трафика. Например, поиск по изображениям Google. Если вы в этом заинтересованы, обязательно включите домены таких сервисов в список разрешенных.

    Кроме того, не стоит блокировать запросы без поля "Referer", очень часто за ними скрываются посетители вашего сайта с необычными браузерами или нестандартными настройками.

    Для изображений:

    server {
    ...

    location ~ \.(jpg|gif|png)$ {
    valid_referers none blocked server_names ~\.google\. images.yandex.ru;
    if ($invalid_referer) {
    rewrite ^(.*)$ /img/invalid_referer.png redirect;
    }
    }
    }

    Благодаря этому коду, все посетители, которые хотят загрузить изображение, у которых в запросе присутствует поле "Referer", но оно не содержит имени вашего домена, домена Google или Yandex, все они увидят изображение из файла invalid_referer.png.

    Для загружаемых файлов:

    server {
    ...

    location /download/ {
    valid_referers none blocked server_names;
    if ($invalid_referer) {
    rewrite ^(.*)$ /download.html redirect;
    }
    }
    }

    Если ссылку на ваш файл поставят на другом сайте, то посетитель перейдет на вашу страницу download.html и только уже с неё сможет перейти непосредственно к загрузке файла.

    материал взять из сайта: http://server-tuning.info/nginx/direct-linking-protection.html

    Автор: admin, 30 января 2014
    Рубрики: OS FreeBSD, OS Linux, Новости
    Метки: , ,

    Написать комментарий

    Последние статьи