Защита хотлинк
Защита хотлинк
Здравствуйте, как же правильно поставить защиту от хотлинка, такая конструкция не работает:
И такая:
Code: Select all
location ~ \.(jpg|png|gif)$ {
valid_referers server_names blocked none frienddomain.com *.frienddomain.com ;
if ($invalid_referer) {
return 403;
}
}
Code: Select all
location ~* ^.+\.(jpg|png|gif)$ {
root /path/to/site/;
valid_referers none blocked server_names ;
if ($invalid_referer) {
return 403;
}
}
Re: Защита хотлинк
У меня такое в nginx работает
Code: Select all
location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|tif|tiff|css|js|htm|html|ttf|otf|webp|woff|txt|csv|rtf|doc|docx|xls|xlsx|ppt|pptx|odf|odp|ods|odt|pdf|psd|ai|eot|eps|ps|zip|tar|tgz|gz|rar|bz2|7z|aac|m4a|mp3|mp4|ogg|wav|wma|3gp|avi|flv|m4v|mkv|mov|mpeg|mpg|wmv|exe|iso|dmg|swf)$ {
root /путь до/сайта;
valid_referers none blocked server_names ~(yandex|google|yahoo|bing|facebook|fbcdn);
if ($invalid_referer) {
rewrite (.*)\.(jpg|jpeg|png|gif)$ https://положил картинку на стронний сервис которая будет отображаться как запрет хотлинка;
}
Re: Защита хотлинк
Спасибо большое, заработало, только как бы допилить, у меня сайт https и хотлинки которые идут по такой ссылке http://cайт.ru/картинка.png блокируются, но хотлинки https://сайт.ru/картинка.png не блокируются =(
Re: Защита хотлинк
У меня в htaccess стоит редирект и всё попадает на HTTPS и блокируется просто отличто.
Это надо вставлять в home\admin\conf\web\ в nginx - этот файл отвечает за http и в snginx - этот файл отвечает за https
Это надо вставлять в home\admin\conf\web\ в nginx - этот файл отвечает за http и в snginx - этот файл отвечает за https
Re: Защита хотлинк
Вот спасибо, всё получилось =))
Re: Защита хотлинк
Хотя нет не получилось, хм вроде все так же вставил... =(
Re: Защита хотлинк
У меня вот такая конструкция и не работает на https, на http все работает((
/home/user/conf/web/snginx.conf
/home/user/conf/web/snginx.conf
Code: Select all
server {
listen xx.xx.xx.xx:443;
server_name domen.ru www.domen.ru;
ssl on;
ssl_certificate /home/user/conf/web/ssl.domen.ru.pem;
ssl_certificate_key /home/user/conf/web/ssl.domen.ru.key;
error_log /var/log/httpd/domains/domen.ru.error.log error;
location / {
proxy_pass https://xx.xx.xx.xx:8443;
location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|tif|tiff|css|js|htm|html|ttf|otf|webp|woff|txt|csv|rtf|doc|docx|xls|xlsx|ppt|pptx|odf|odp|ods|odt|pdf|psd|ai|eot|eps|ps|zip|tar|tgz|gz|rar|bz2|7z|aac|m4a|mp3|mp4|ogg|wav|wma|3gp|avi|flv|m4v|mkv|mov|mpeg|mpg|wmv|exe|iso|dmg|swf)$ {
root /home/user/web/domen.ru/public_html;
valid_referers none blocked server_names ~(yandex|ya|google|yahoo|bing|facebook|fbcdn|vk|vkontakte|mail);
if ($invalid_referer) {
rewrite (.*)\.(jpg|jpeg|png|gif)$ https://полный_путь_до_картинки_на_стороннем_сервисе;
}
access_log /var/log/httpd/domains/domen.ru.log combined;
access_log /var/log/httpd/domains/domen.ru.bytes bytes;
expires max;
try_files $uri @fallback;
}
limit_req zone=antibot burst=30;
limit_conn antibott 100;
}
location /error/ {
alias /home/user/web/domen.ru/document_errors/;
}
location @fallback {
proxy_pass https://xx.xx.xx.xx:8443;
}
location ~ /\.ht {return 404;}
location ~ /\.svn/ {return 404;}
location ~ /\.git/ {return 404;}
location ~ /\.hg/ {return 404;}
location ~ /\.bzr/ {return 404;}
include /home/user/conf/web/snginx.domen.ru.conf*;
}
Re: Защита хотлинк
Вы как проверяете работает оно или нет?
Я размещаю на стороннем сайте картинку от себя,потом чищу кеш ибо картинка эта хранится у меня в кеше браузера и он её подтянет оттуда.И потом проверяю.
Я размещаю на стороннем сайте картинку от себя,потом чищу кеш ибо картинка эта хранится у меня в кеше браузера и он её подтянет оттуда.И потом проверяю.
Re: Защита хотлинк
Да вообщем то так же, только захожу еще в браузере режим инкогнито, и иду на сторонний сайт и выкладываю, выкладывал одну и туже картинку https://домен/000/u1/d4/42/b0fc5841.jpg и http://домен/000/u1/d4/42/b0fc5841.jpgyariksat wrote:Вы как проверяете работает оно или нет?
Я размещаю на стороннем сайте картинку от себя,потом чищу кеш ибо картинка эта хранится у меня в кеше браузера и он её подтянет оттуда.И потом проверяю.
Прям загадка какая-то =(
Re: Защита хотлинк
Вот мой конфиг полностью
Как видите в секции location у нас есть с Вами различия,у меня защита хотлинк вынесена в отдельную секцию.
Code: Select all
server {
listen xxx.xxx.xxx.xxx:443;
server_name domains.ru www.domains.ru;
ssl on;
ssl_certificate /home/admin/conf/web/ssl.domains.ru.pem;
ssl_certificate_key /home/admin/conf/web/ssl.domains.ru.key;
resolver 8.8.8.8 8.8.4.4;
resolver_timeout 10s;
spdy_keepalive_timeout 300;
spdy_headers_comp 9;
ssl_stapling on;
ssl_stapling_verify on;
ssl_dhparam /home/admin/conf/web/dhparam.pem;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains";
add_header X-Frame-Options SAMEORIGIN;
add_header X-Content-Type-Options nosniff;
error_log /var/log/apache2/domains/domains.ru.error.log error;
location / {
proxy_pass https://xxx.xxx.xxx.xxx:8443;
}
location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|tif|tiff|css|js|htm|html|ttf|otf|webp|woff|txt|csv|rtf|doc|docx|xls|xlsx|ppt|pptx|odf|odp|ods|odt|pdf|psd|ai|eot|eps|ps|zip|tar|tgz|gz|rar|bz2|7z|aac|m4a|mp3|mp4|ogg|wav|wma|3gp|avi|flv|m4v|mkv|mov|mpeg|mpg|wmv|exe|iso|dmg|swf)$ {
root /home/admin/web/domains.ru/public_html;
valid_referers none blocked server_names ~(yandex|google|yahoo|bing|facebook|fbcdn);
if ($invalid_referer) {
rewrite (.*)\.(jpg|jpeg|png|gif)$ https://domains.net/images/hotlink.png;
}
access_log /var/log/apache2/domains/.domains.log combined;
access_log /var/log/apache2/domains/domains.ru.bytes bytes;
expires max;
try_files $uri @fallback;
}
location /error/ {
alias /home/admin/web/domains.ru/document_errors/;
}
location @fallback {
proxy_pass https://xxx.xxx.xxx.xxx:8443;
}
location ~ /\.ht {return 404;}
location ~ /\.svn/ {return 404;}
location ~ /\.git/ {return 404;}
location ~ /\.hg/ {return 404;}
location ~ /\.bzr/ {return 404;}
disable_symlinks if_not_owner from=/home/admin/web/domains.ru/public_html;
include /home/admin/conf/web/snginx.domains.ru.conf*;
}