Antileech

Тема в разделе "Mod Rewrite / htaccess / ЧПУ", создана пользователем Darkmind, 21 май 2010.

Статус темы:
Закрыта.
  1. Darkmind

    Darkmind SNMP maniac

    Регистр.:
    31 май 2006
    Сообщения:
    184
    Симпатии:
    76
    Попробовал написать антилич для папки с контентом.
    Код:
    RewriteEngine On
    RewriteCond %{HTTP_REFERER} !^http://www.yourdomain.com [NC]
    RewriteRule .*\.(jpg|jpeg|gif|mp3|png|bmp|xml)$ - [NC,F]
    
    Для тех, кто хочет перенаправить на обидную картинку (every time you hotlink, God kills a kitten), последнюю строку можно заменить на:
    Код:
    RewriteRule .*\.(jpg|jpeg|gif|mp3|png|bmp|xml)$ http://www.yourdomain.com/antileech.jpg [NC,R,L]
    После этого столкнулся с тем, что если открывать сайт в опере и открыть просмотр любого изображения, то можно к этому изображению обратиться напрямую и опера его исправно покажет, взяв из кэша. Решилось добавлением следующих строк:

    Код:
    <FilesMatch "\.(jpg|jpeg|gif|mp3|png|bmp|xml)$">
    Header set Pragma "no-cache"
    Header set Cache-Control "no-store, no-cache, must-revalidate, post-check=0, pre-check=0"
    Header set Expires "Sun, 19 Nov 1978 05:00:00 GMT"
    </FilesMatch>
    
    Теперь опера не выпендривалась и реагировала на RewriteRule, не пытаясь подгрузить картинку из кэша. Но всплыла другая проблема, которую решить пока не могу. Firefox абсолютно наплевательски относится к HTTP-REFERRER и отказывается работать с этим антиличем. Даже когда картинки подгружаются скриптом, реферрер не передаётся.

    Это опера:
    Код:
    GET /content/pictures1/sunset%2Ejpg HTTP/1.1" 304 - "http://www.yourdomain.com/gallery/engine.php" "Opera/9.80 (Windows NT 6.1; U; ru) Presto/2.5.24 Version/10.53"
    А это фаерфокс:
    Код:
    "GET /content/pictures1/sunset%2Ejpg HTTP/1.1" 403 306 "-" "Mozilla/5.0 (Windows; U; Windows NT 6.1; ru; rv:1.9.1.8) Gecko/20100202 Firefox/3.5.8 WebMoney Advisor"
    Как с этим бороться?
     
  2. Darkmind

    Darkmind SNMP maniac

    Регистр.:
    31 май 2006
    Сообщения:
    184
    Симпатии:
    76
    ----------------------------- решения нет ----------------------------
    Проблема в недобраузере Firefox, который я яро ненавижу с момента его выхода за кривость, грязный пиар и прочую муть. https://bugzilla.mozilla.org/show_bug.cgi?id=410904 горите в аду, Mozilla Foundation. Чтобы не лезть по ссылке, вкратце: "Проблема в том, что Firefox не посылает REFERER при запросе из Embedded Flash".

    Тему можно закрывать, стандартными средствами эту проблему, скорее всего, не решить.
     
Статус темы:
Закрыта.