Предотвратить горячую связь сгенерированных миниатюр? - PullRequest
1 голос
/ 04 октября 2011

У меня есть файл .htaccess, который содержит директивы для предотвращения горячей ссылки статических ресурсов (изображений, файлов CSS и JavaScript).Соответствующий код выглядит следующим образом:

RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?ipwuk.com/.*$ [NC]
RewriteRule \.(gif|jpg|js|css|png)$ - [F,L]

Это здорово и делает свою работу;Тем не менее, у меня есть скрипт PHP, который автоматически генерирует миниатюры (и не содержит расширение файла в URL).Пример миниатюрного URL выглядит следующим образом:

http://example.com/inc/image.php/4e7efde2ee8ac.jpg/610/343/fill

Или:

http://example.com/inc/image.php/[seed].[extension]/[width]/[height]/[thumb type]

Как я могу предотвратить горячую связь изображений, сгенерированных вышеописанным сценарием (что, как я подозреваю, делает мой клиент и в результате потребляет пропускную способность свыше 150 МБ в день)?

Ответы [ 2 ]

1 голос
/ 04 октября 2011

Этот код отклоняет все запросы на image.php, которые НЕ являются прямыми или с указанного веб-сайта.

RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?ipwuk\.com/.*$ [NC]
RewriteCond %{REQUEST_URI}  ^/image.php(.*)$ [NC]
RewriteRule ^(.*)$ - [F,L]
1 голос
/ 04 октября 2011

Не могли бы вы на самом деле предотвратить - РЕДАКТИРОВАТЬ: отговорить - это в сценарии, который генерирует миниатюру сам?

В псевдо-PHP:

if (parse_url($_SERVER['HTTP_REFERER']) != "yourSite"){

   //generate thumbnail that says "don't hotlink, scum!"

}
else {

    //do your normal thumbnail generation routine

} 
...