Non è possibile fare ciò che si vuole fare, per ragioni fondamentali. L'utente controlla il client. Dal lato server, il server non ha modo di distinguere un browser legittimo che sta facendo una richiesta per un'immagine sulla pagina (un caso in cui si desidera fornire l'immagine) da un utente malintenzionato che sta tentando di accedere direttamente al immagine (un caso in cui non vuoi servire l'immagine). Queste due situazioni sono indistinguibili dal punto di vista del server, quindi il server deve comportarsi nello stesso modo in entrambi i casi: o serve l'immagine in entrambi i casi, oppure non la serve.
Potresti voler rivisitare quello che stai effettivamente cercando di ottenere, e vedere se c'è un altro modo per raggiungerlo. Cosa stai cercando di impedire? Quale minaccia stai cercando di proteggere contro?
Se si sta tentando di impedire lo scraping, una cosa che si potrebbe considerare è rendere le immagini disponibili solo agli utenti che hanno effettuato l'accesso. Dovrai decidere se è appropriato per il tuo sito, o se non è una buona corrispondenza (forse vuoi che le pagine web e le immagini siano visualizzabili da tutti). Un'altra opzione è quella di impostare il file robots.txt
per richiedere gentilmente che i bot non scarichino le immagini. Sarai costretto a fare affidamento sulla buona volontà dei robot. I robot ben educati e gli scraper di solito obbediscono alle istruzioni in robots.txt
. Un utente malintenzionato può sempre ignorare il file robots.txt
e raschiare il tuo sito comunque, ma sfortunatamente, non c'è modo di impedirlo: un utente malintenzionato sarà sempre in grado di scaricare qualsiasi contenuto che hai deciso di rendere disponibile agli utenti non autenticati . Quindi robots.txt
è in qualche modo discutibilmente il meglio che puoi fare ragionevolmente, nella maggior parte delle situazioni.
Vedi anche Come impedire alle persone di rubare foto dal mio sito web? e Come posso impedire alle persone di utilizzare le mie immagini dal mio sito web .