2016-07-28 5 views
1

Ich versuche hotlinking meiner mp4 mit nginx „valid_referers“ zu blockieren:Nginx mp4 hotlink Schutz nicht funktioniert

valid_referers none blocked mysite.com; 
      if ($invalid_referer) { 
       return 403; 
      } 

Aber es funktioniert nicht bei allen, die mp4 noch auf den Webseiten angezeigt werden, die das Video stehlen und wenn ich eine zufällige Domain anstelle von "mysite.com" verwende, funktioniert das Video immer noch.

Wenn es helfen kann, ist das, was wie mein Server conf Datei aussehen:

server { 
    listen 80; 
    server_name dl.mysite.com; 
    root /home/videos; 

    index index.php index.html; 

    autoindex off; 

    location ~ /\. { 
     deny all; 
    } 

    # serve static files directly 
    location ~* \.(jpg|jpeg|gif|css|png|js|ico|html)$ { 
     access_log off; 
     expires max; 
    } 

    # streaming 
    location ~ \.mp4$ { 

     valid_referers none blocked mysite.com; 
     if ($invalid_referer) { 
      return 403; 
     } 

     gzip off; 
     gzip_static off; 

     mp4; 
     mp4_buffer_size 1M; 
     mp4_max_buffer_size 300M; 
    } 

    location ~ .flv$ { 
     flv; 
    } 

    # removes trailing slashes 
    if (!-d $request_filename) 
    { 
     rewrite ^/(.+)/$ /$1 permanent; 
    } 


    # canonicalize codeigniter url end points 
    if ($request_uri ~* ^(/lobby(/index)?|/index(.php)?)/?$) 
    { 
     rewrite ^(.*)$/permanent; 
    } 

    # removes trailing "index" from all controllers 
    if ($request_uri ~* index/?$) 
    { 
     rewrite ^/(.*)/index/?$ /$1 permanent; 
    } 

    # unless the request is for a valid file (image, js, css, etc.), send to bootstrap 
    if (!-e $request_filename) 
    { 
     rewrite ^/(.*)$ /index.php?/$1 last; 
     break; 
    } 

    # catch all 
    error_page 404 /index.php; 

     location ~ \.php$ { 
     try_files $uri =404; 
       fastcgi_pass 127.0.0.1:9000; 
       fastcgi_index index.php; 
       fastcgi_read_timeout 600; 
       include fastcgi_params; 
     } 

} 

ich etwas falsch tue?

Antwort

0

Ich hatte das gleiche Problem in der Vergangenheit. Ich dachte, es funktionierte nicht, aber eigentlich funktionierte es. Achte nur darauf, dass du niemandem außer dir erlaubst.

Manchmal versuchen Leecher Null- oder Leer-Referrer, um dies zu umgehen, und es gibt keine mögliche Lösung dafür. Eine mögliche Lösung kann ich vorschlagen, das Ressourcenverzeichnis zu blockieren. Siehe https://www.atulhost.com/hotlink-protection-nginx dieser Mann erklärte alles auf eine einfache Art und Weise.

+0

Während dieser Link die Frage beantworten kann, ist es besser, die wesentlichen Teile der Antwort hier aufzunehmen und den Link als Referenz zur Verfügung zu stellen. Nur-Link-Antworten können ungültig werden, wenn sich die verknüpfte Seite ändert. - [Aus Bewertung] (/ review/low-quality-posts/16889742) – user1438038