Защита картинок от прямого скачивания

Евгений Осипов m21r at ya.ru
Thu Oct 22 11:51:04 MSD 2009


Igor Sysoev пишет:
> On Wed, Oct 21, 2009 at 04:09:35PM +0400, Евгений Осипов wrote:
>
>   
>> ОС: Windows Server
>> NGINX Fronted
>> Apache BackEnd
>>
>> Имеется следующий конфиг:
>>
>>     worker_processes  1;
>>     error_log  D:/Server/Nginx/logs/error.log;
>>
>>     events {
>>         accept_mutex  off;
>>         }
>>
>>
>>     http {
>>         include       mime.types;
>>         default_type  application/octet-stream;
>>
>>         log_format main '$remote_addr - $remote_user [$time_local]
>>     $request '
>>             '"$status" $body_bytes_sent "$http_referer" '
>>             '"$http_user_agent" "$http_x_forwarded_for"';
>>
>>         sendfile        on;
>>         keepalive_timeout 0;
>>
>>         gzip  on;
>>         gzip_min_length 1100;
>>         gzip_buffers 64 8k;
>>         gzip_comp_level 3;
>>         gzip_http_version 1.1;
>>         gzip_proxied any;
>>         gzip_types text/plain application/xml application/x-javascript
>>     text/css;
>>
>>
>>         server {
>>             listen       80;
>>             server_name  tvorite.ru www.tvorite.ru;
>>             #access_log off;
>>             #error_log off;
>>             access_log  D:/Server/Nginx/logs/access_tvorite.log;
>>             error_log  D:/Server/Nginx/logs/error_tvorite.log;
>>
>>         # Main location
>>             location / {
>>             root   D:/Server/Apache/htdocs;
>>             index  index.php;
>>             client_max_body_size  200M;
>>             client_body_buffer_size    16k;
>>             proxy_pass http://127.0.0.1:81;
>>             proxy_set_header Host $host;
>>             proxy_set_header X-Real-IP $remote_addr;
>>             proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
>>             }
>>
>>             # Static files location
>>             location ~*
>>     ^.+\.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js)$
>>     {
>>             root   D:/Server/Apache/htdocs;
>>             expires      30d;
>>             }
>>
>>         }
>>
>> Когда добавляю следующую строчку в конфиг:
>>
>>     location ~ \.(jpg|gif|png)$ {
>>         valid_referers none blocked server_names ~\.google\. images.yandex.ru;
>> 	if ($invalid_referer) {
>> 	    rewrite ^(.*)$ /img/invalid_referer.png redirect;
>> 	}
>>     }
>>
>> изображения вообще пропадают.
>>
>> Что я делаю не так?
>>     
>
>    root   D:/Server/Apache/htdocs;
> можно вынести на на уровень сервера или добавить в
> "location ~ \.(jpg|gif|png)$".
>
> Из
>      location ~* ^.+\.(jpg|jpeg|gif|png|...
> нужно убрать "jpg|gif|png".
>
>
>   
Заметил что это помогло.
Картинки на других сайтах перестали показываться, то нужно изображение 
по появляется.
Используется этот конфиг:
        location ~ \.(bmp|jpg|jpeg|gif|png)$ {
            root  html/htdocs;
            access_log   off;
            expires      30d;
            valid_referers none blocked server_names forum.21region.org 
foto.21region.org ~\.google\. images.yandex.ru doskapozora.ru;
            if ($invalid_referer) {
            rewrite ^(.*)$ /htdocs/hotlinkers.jpg redirect;
            }
        }

Изображение hotlinkers.jpg лежит в корне.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://nginx.org/pipermail/nginx-ru/attachments/20091022/e0f95c03/attachment.html>


More information about the nginx-ru mailing list