cómo protegerse del hotlink en nginx

cómo protegerse del hotlink en nginx

Necesito protegerme de los enlaces directos en mi sitio php. Cómo puedo conseguir esto ?? Estoy usando nginx como servidor web. Si intento versitio.com/uploads/image.jpgSin iniciar sesión puedo ver imágenes en el navegador. Necesito evitar el acceso directo a la carpeta sin iniciar sesión.

la estructura de mi proyecto

site
    -index.php
    -uploads/image.jpg....
    -css/
    -js/

sitio.conf

server {

    listen site.com;

    server_name site.com;



    root /home/vijo/Music/PHP/site;

    index index.php index.html index.htm;



    keepalive_timeout 70;

    access_log /home/vijo/Music/PHP/site/log/access.log;

    error_log /home/vijo/Music/PHP/site/log/error.log;





    # Make site accessible from http://localhost/



   location / {

            try_files $uri $uri/ @rewrite;

            expires max;

    }



    location @rewrite {

            rewrite ^ /index.php;
    }



    location ~ \.php$ {

            fastcgi_split_path_info ^(.+\.php)(/.+)$;

            fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;

            fastcgi_index index.php;

            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

            include fastcgi_params;

    }



    location ~ /\.ht {

            deny all;

    }

}

Respuesta1

La configuración de muestra se parece a
Consulte:https://thebarton.org/prevent-hotlinking-nginx/
http://techgirlkb.guru/2017/08/preventing-site-mirroring-via-hotlinking/

location ~* \.(gif|png|jpe?g)$ {
expires 7d;
add_header Pragma public;
add_header Cache-Control "public, must-revalidate, proxy-revalidate";
# prevent hotlink
valid_referers none blocked ~.google. ~.bing. ~.yahoo. server_names ~($host);
if ($invalid_referer) {
rewrite (.*) /static/images/hotlink-denied.jpg redirect;
# drop the 'redirect' flag for redirect without URL change (internal rewrite)
}
}
# stop hotlink loop
location = /static/images/hotlink-denied.jpg { }

información relacionada