Quando un sito web diventa particolarmente popolare, può accadere che i suoi contenuti, nella fattispecie immagini, video e quant'altro, vengano mostrati all'interno di pagine esterne, magari senza alcuna autorizzazione e senza che possiamo in qualche modo accorgercene. Il risultato finale è che tali file appariranno in siti che non ci appartengono, a nostre spese (di banda) e magari senza che possiamo avere una qualche remunerazione in termini di visibilità o impressions degli annunci pubblicitari che abbiamo nelle nostre pagine.
Fortunatamente, tramite URL Rewrite Module di IIS 7, è piuttosto immediato creare una rule volta ad arginare questa problematica. Tutto ciò che dobbiamo fare, una volta installato il modulo, è inserire questa sezione nel web.config dell'applicazione:
<system.webServer> <modules runAllManagedModulesForAllRequests="true" /> <rewrite> <rules> <rule name="Avoid remote linking" enabled="true" stopProcessing="true"> <match url="(.*)" /> <conditions> <add input="{REQUEST_FILENAME}" matchType="IsFile" /> <add input="{REQUEST_FILENAME}" pattern="\.(png|jpg)" /> <add input="{REQUEST_FILENAME}" pattern="blocked\.png" negate="true" /> <add input="{HTTP_REFERER}" pattern="^http://www\.testredirect\.com/.*$" negate="true" /> </conditions> <action type="Rewrite" url="/blocked.png" appendQueryString="false" /> </rule> </rules> </rewrite> </system.webServer>
Come possiamo notare dando un'occhiata al nodo conditions, si tratta di una regola che si applica a tutte le richieste di file le cui estensioni siano png o jpg (ovviamente possiamo personalizzare a piacimento questa impostazione). L'ultima condizione, in particolare, ci consente di verificare tramite il valore della variabile server HTTP_REFERER, se la richiesta sia stata originata da una pagina che appartiene al nostro sito oppure no.
In caso negativo, l'azione designata è quella di effettuare un rewrite sull'URL da processare, inviando il contenuto di un'immagine speciale che abbiamo predisposto (nel nostro caso, blocked.png) in luogo di quella originariamente richiesta.
Altri contenuti su URL Rewrite Module
Impostare la canonizzazione degli URL in IIS 7 con URL Rewrite Modulehttps://www.aspitalia.com/script/1073/Impostare-Canonizzazione-URL-IIS-URL-Rewrite-Module.aspx
Sfruttare l'URL Rewrite Module di IIS per gestire il redirect verso HTTPS
https://www.aspitalia.com/script/1074/Sfruttare-URL-Rewrite-Module-IIS-Gestire-Redirect-HTTPS.aspx
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Ordine e importanza per @layer in CSS
Collegare applicazioni server e client con .NET Aspire
Supportare lo HierarchyID di Sql Server in Entity Framework 8
Potenziare la ricerca su Cosmos DB con Full Text Search
Eseguire una ricerca avanzata per recuperare le issue di GitHub
Utilizzare il metodo Index di LINQ per scorrere una lista sapendo anche l'indice dell'elemento
Popolare una classe a partire dal testo, con Semantic Kernel e ASP.NET Core Web API
Ottimizzare le pull con Artifact Cache di Azure Container Registry
Migliorare l'organizzazione delle risorse con Azure Policy
Creare una libreria CSS universale: Clip-path
Utilizzare il metodo ExceptBy per eseguire operazione di sottrazione tra liste
Filtrare i dati di una QuickGrid in Blazor con una drop down list