Domanda

Come prevenire il download di immagini e file video dal mio sito web? È possibile? Quale sarebbe il modo migliore per fare questo?

È stato utile?

Soluzione

No, non è possibile.

Se si può vedere, si può ottenere.

Altri suggerimenti

Non li postare sul tuo sito.

In caso contrario non è possibile.

Le immagini devono essere scaricati al fine di essere visto da parte del cliente. I video sono un caso simile, in molti scenari. È possibile script di configurazione proxy per servire i file fuori, ma che in realtà non risolvere la questione del impedendo all'utente di ottenere la propria copia. Per una discussione più approfondita di questo argomento, vedere la domanda Come posso evitare / rendono difficile per scaricare il mio video in flash?

Mi piacerebbe aggiungere un commento più filosofico. L'intero intento di internet, in particolare il World Wide Web, è quello di condividere i dati. Se non si desidera la gente a scaricare un'immagine / video / documento, non metterlo sul web . E 'davvero così semplice. Troppe persone pensano di poter imporre le proprie regole su un progetto esistente. Coloro che vogliono pubblicare contenuti sul web, e controllare la sua distribuzione, stanno cercando di avere la botte piena e la moglie ubriaca.

In breve, no. Se qualcuno può visualizzare un'immagine o un video nel browser poi hanno, per definizione, scaricato. Ecco come funziona il web - è basato su client server. Qualunque cosa è possibile visualizzare nel browser (client) è stato trasferito al computer dal sito Web remoto (server).

In HTML standard, non so di ogni caso.

Non hai veramente detto, ma credo si hanno problemi con la gente deep linking sul suo sito web . Se questo è il caso, e si sono aperti al codice lato server, credo che questo potrebbe funzionare:

  1. Creare una pagina che accetta un numerica id, mappe in un percorso di file server, apre il file, scrive il binario direttamente al flusso di risposta.
  2. Nella richiesta di pagina, generare un mucchio di ids casuali, e mapparli a gli URL effettivi dei media, e negozio che mappatura lato server oggetto da qualche parte (In sessione?) Con una durata limitata.
  3. Render tue pagine con i vostri mezzi link che puntano alla nuova pagina dei media con l'id appropriato come una query argomento stringa.
  4. Cancella l'oggetto di mapping e generare tutti i nuovi link su ogni postback.

Questa:

  1. non si fermerà le persone di scaricare da dentro la tua pagina
  2. sicuramente non è il più leggero di serie HTML
  3. e ha il proprio set di problemi.

Ma è uno schema generale di un processo funzionale che potrebbe aiutare a prevenire gli utenti da deep linking.

Come molti hanno detto, non si può impedire a qualcuno di download di contenuti. Non ci si può.

Ma si può rendere più difficile.

È possibile sovrapporre le immagini con un div trasparente, che impedirà alla gente di destra clic su di essi (o, impostando lo sfondo di un div all'immagine avrà lo stesso effetto).

Se siete preoccupati per cross-linking (vale a dire, le altre persone che collegano alle immagini, è possibile controllare il referrer HTTP e reindirizzare le richieste che provengono da un dominio che non è il vostro da "qualcos'altro".

Se si sta utilizzando PHP, il modo migliore è quello di controllare il .htaccess, è necessario mettere il vostro file, immagini e video in esame in una cartella / directory separata, e creare un nuovo file .htaccess in questa directory con il seguito :

RewriteEngine On
RewriteCond %{REQUEST_URI} \.(mp4|mp3|avi)$ [NC]
RewriteCond %{HTTP_REFERER} !^http://sample.com/.*$ [NC]
RewriteRule ^.* - [F,L]

La prima linea %{REQUEST_URI} impedirà di ottenere il file attraverso il browser web, oppure attraverso curl. La seconda linea %{HTTP_REFERER} impedirà l'accesso alla imahe / video utilizzando i tag HTML <img> o <video> da qualsiasi sito web, tranne l'eccezione ! si fornisce invece di http://sample.com/ che di solito dovrebbe essere il vostro sito stesso.

Si può anche dare un'occhiata alla mia domanda e la risposta accettata qui per più trucchi nel lato browser.

Per quanto il browser ha bisogno di trasferire il contenuto per visualizzarlo (testo, immagini, video), i dati sono già sul computer client quando viene visualizzato il sito web. Le risposte precedenti danno piccolo consiglio su come rendere più difficile per gli utenti non esperti di afferrare il contenuto. Ecco alcune indicazioni:

  • Generale
    • Sovrapposizione il contenuto respecitive con un <DIV> trasparente o un'immagine trasparente (come descritto in alcune risposte a questa domanda)
    • Aprire il sito in un frame, in modo da salvare possono perdere il contenuto del frame.
    • Aprire il sito web tramite window.open() per nascondere la barra dei menu.
    • Disabilita fa clic destro tramite JavaScript (sconsigliato a causa di tutti gli effetti collaterali sulla usabilità)
    • Caricare il codice HTML della pagina da un altro file (che può verificare la presenza di un referer specifico o che può essere ROT13) tramite JavaScript, quindi è più difficile accedere al codice sorgente.
    • dire al browser che tutto il contenuto è display:none per la stampante (qualcosa come @media print { body, div, p { display: none } })
    • Usa JavaScript per nascondere il contenuto prima di un client effettua una schermata (vedi Arresta utente di utilizzare ‘Stampa Stamp’ )
    • Prova a disattivare o sovrascrivere il clipboard (vedi questo post )
  • Immagini
    • Non utilizzare il tag <img> per le immagini, ma impostare l'immagine come sfondo per un <DIV>
    • immagini avvolgerli in SVG o filmati Flash per renderli molto difficile l'accesso in un formato utilizzabile.
    • caching Disabilita per le immagini (tramite tag <meta> o impostando l'intestazione appropriata al momento della consegna del server), in modo che non vengono memorizzati nella cache del browser (immeaditely accessibili sul computer del cliente).
    • Tagliare un'immagine in più parti, quindi ci vuole un po 'di lavoro extra per ricostruire l'intera immagine
    • Aggiungi eventi onmousedown alle immagini, ad esempio, visualizzare un avviso di diritto d'autore.
    • Consegnare l'immagine tramite script del server (ad esempio, PHP) e controllare il referer.
  • Video
    • video stream per prevenire semplice scaricamento tramite URL.
    • video avvolgerli in un filmato Flash.
    • Utilizzare qualche brutta formato che supporta il DRM.
  • Testi
    • la dimensione del testo non selezionabile (vedi Come rendere HTML testo non selezionabile )
    • In aggiunta a sovrapposizione, avvolgere il testo in JavaScript (ad esempio, dopo ROT13 o caricato dinamicamente da un secondo file), in modo che il testo non è disponibile direttamente nel codice sorgente.
    • convertire i testi alle immagini (questo può diminuire la qualità di visualizzazione), SVG o Flash

Ancora una volta, ripeto che tutto questo non si fermerà un utente esperto di afferrare il contenuto (per esempio facendo una screenshop e - facoltativamente - eseguire OCR su di esso). A volte è facile come usare strumenti per gli sviluppatori del browser o utilizzando il sito web senza JavaScript. Eppure, darà agli utenti inexperiences un momento difficile, in modo che possano cercare qualche fonte più facile da afferrare da.

Si tenga anche presente che le tecniche di cui sopra influenzerà i motori di ricerca durante la lettura del contenuto della pagina (se siete interessati a loro blocco, iniziano con un robots.txt).

Grazie per altre idee per completare la lista di cui sopra!

Inoltre non fa male a filigrana le immagini con Photoshop o anche in Lightroom 3 ora. Assicurarsi che la filigrana è chiara e in un luogo ben visibile sulla vostra immagine. In questo modo se è scaricato, almeno si ottiene la pubblicità!

è possibile ridurre la possibilità, ma non eliminarlo ...

Questo è come lo faccio nel caso qualcuno in futuro si chiede.

Ho messo questo nel file .htaccess sul server root:

RewriteEngine on 
RewriteCond %{HTTP_REFERER} !^http://(www\.)?domain.com/ [NC] 
RewriteCond %{HTTP_REFERER} !^http://(www\.)?domain.com.*$ [NC]
RewriteRule \.(mp4|avi)$ - [F]

Questo impedisce loro di andare a dire domain.com/videos/myVid.mp4 e salvandolo da lì.

No non lo è. Si può bloccare fa clic destro e roba simile, ma se qualcuno vuole scaricarlo, lo farà, la fiducia di me;)

Non appena si visualizza la pagina che include l'immagine o il video, l'elemento viene scaricato nella cartella temporanea del loro browser. Quindi, se non si desidera scaricato, non pubblicarlo.

È possibile contrassegnare le cartelle o file in modo che non hanno accesso in lettura (una delle principali web server supportano questo). Questo consente di memorizzare loro sul server senza alcun livello di accesso al mondo esterno. Si consiglia di fare questo se si dispone di un servizio che genera immagini per qualcun altro per scaricare in seguito, o se si utilizza il tuo account web per l'accesso FTP, ma non si vuole a chiunque di visualizzare i file. (Vale a dire caricare un file .bak al server per qualcun altro su FTP di nuovo).

Tuttavia, come altri hanno detto, ad entrare nelle zone di copyright in cui le persone possono visualizzare l'immagine o il video, ma non salvarli in locale non è pienamente possibilmente, anche se ci sono strumenti per scoraggiare l'uso illegale.

Metti la tua immagine o il video in formato flash. Funziona alla grande.

Questo è un vecchio post, ma per il video si potrebbe desiderare di considerare l'utilizzo di MPEG-DASH per nascondere i file. Inoltre, fornirà una migliore esperienza di streaming per gli utenti senza la necessità di un server di streaming separata. Maggiori informazioni in questo post: Come disattivare il download di video / audio nelle pagine web ?

Premesso che qualsiasi immagine l'utente può vedere sarà in grado di essere salvati sul computer e non c'è niente che possa fare al riguardo. Ora, se si desidera bloccare l'accesso ad altre immagini che l'utente non dovrebbe vedere, io sto facendo in questo modo:

  • Ogni link è al "src" nel tag immagine è in realtà una richiesta invia ad un controllore sul server,
  • il server controlla l'accesso i diritti di tale utente specifico, e restituisce l'immagine se l'utente è suppone di avere accesso ad esso,
  • tutte le immagini sono memorizzate in una directory che non è direttamente accessibile dal browser.

Vantaggio:

  • L'utente non avrà accesso a tutto ciò che non lo fai intento a lui / lei di avere accesso a

Svantaggio:

  • Tali domande sono lenti .. soprattutto è che ci sono un sacco di immagini sulla stessa pagina. Non ho trovato un buon modo per accelerare che di fatto ..

È possibile impostare l'immagine di essere immagine di sfondo e avere un'immagine in primo piano trasparente.

Non si può fermare il furto di immagine / video, ma si può fare di più per gli utenti normali, ma non si può rendere più difficile per i programmatori come noi (intendo i ladri che sanno poco programmazione web).

Ci sono alcuni trucchi che si possono provare:

1.) Usando il flash come YouTube e molti altri siti come http://www.funnenjoy.com fa .

2.) Div overlaping o l'impostazione di fondo pic (ma gli utenti con poco senso può facilmente salvare tutte le risorse con l'apertura di ispezionare elemento o altra opzione sviluppatore).

3.) È possibile disattivare tasto destro del mouse e le chiavi specifiche come CTRL + S e altri possibili con JavaScript, ma svantaggio principale è che se l'utente disattivare JavaScript nostri tutti i trucchi non riescono verso il basso.

4.) Salva immagine a None directory online (se si ha pieno accesso al web server) e leggere che i file con linguaggi lato server come PHP ogni volta quando è richiesta un'immagine / video e il tempo cambia immagine id a tempo o creare uno script che può cambiare automaticamente ID dopo ogni accesso.

5.) Utilizzare .htaccess in Apache per prevenire il collegamento delle immagini da altri siti. è possibile utilizzare questo sito per generare automaticamente .htacess http://www.htaccesstools.com/hotlink-protection/

Inserire una trasparente GIF 1 x 1 pixel solo all'interno del tag <body>:

<body><img src="route-to-images/blim.gif" class="blimover">

Poi lo stile con questo:

.blimover {
  width: 100% !important;
  height: 100% !important;
  z-index: 1000 !important;
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
}

Questo consente di eliminare ogni funzionalità click da una pagina, ma si ferma certo la gente rubare alcun contenuto!

È possibile applicare lo stesso ad un <div>, <section>, <article> ecc, basta citarne conseguenza e prevenire la vostra copia e / o immagini di essere strappati.

Niente ferma uno screengrab però ... ...

Se si desidera che gli utenti autorizzati solo per ottenere il contenuto, sia il client e il server devono utilizzare la crittografia.

Per il video e l'audio, una buona soluzione è Azure Media Services, che ha la protezione dei contenuti e la crittografia. Si incorpora il lettore multimediale Azure nel tuo browser ed esegue il flusso del video da Azure.

Per i documenti ed e-mail, si può guardare Azure Rights Management, che utilizza un cliente speciale. E attualmente non funziona nei browser web ordinarie, purtroppo, ad eccezione di una tantum, codici monouso.

Non sono sicuro esattamente come sicuro tutto questo è, tuttavia. Come altri hanno fatto notare, da un punto di vista della sicurezza, una volta che tali byte scaricati sono nella RAM "dell'attaccante", sono buono come andata. Nessuna soluzione è sicura al 100% in questo caso (per favore correggetemi se sbaglio). Come la maggior parte di sicurezza, l'obiettivo è quello di rendere più difficile, in modo che il 99% non si preoccupano.

Credo che il modo migliore è quello di prevenire clic destro sulla tua pagina web, perché questo è il modo più conveniente di un normale utente tenta di scaricare il contenuto, e si può considerare come l'osservazione se u in grado di farlo solo come sei gonna mai essere in grado di fermare un computer geek o di hacker persone di scaricarlo, perché una volta che il contenuto è su internet, significa che è di dominio pubblico già ...

Credo che il modo migliore è: Lo streaming del video in parti CRITTOGRAFATE separati.

Ci sono di hosting video servizi come Vzaar che hanno questa funzionalità. Per quanto ne so, che renderà davvero difficile per scaricare direttamente. Almeno per il 95% delle persone.

Ma, naturalmente, se il video viene riprodotto sullo schermo la gente può semplicemente utilizzare un registratore dello schermo e un semplice software per registrare il suono dall'uscita audio (ma lui / lei dovranno svolgere la cosa INTERO per salvarlo, totalmente scomodo ).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top