What is "X-Content-Type-Options=nosniff"?

What is "X-Content-Type-Options=nosniff"?

Programmazione - Visual Studio Visite: 1571

Che cosa rappresenta l'utile impostazione "X-Content-Type-Options=nosniff"?

L'intestazione HTTP "X-Content-Type-Options: nosniff" indica al browser di non effettuare il "content sniffing" sull'input. Il "content sniffing" è il processo in cui il browser analizza il contenuto di una risorsa per determinare il tipo effettivo della risorsa, anche se il tipo è stato dichiarato in modo errato o mancante. Impostando l'opzione "nosniff" sul server, si indica al browser di utilizzare solo il tipo di contenuto dichiarato dal server e di non effettuare alcuna analisi del contenuto. Ciò può aiutare a prevenire alcune vulnerabilità di sicurezza, come gli attacchi "MIME sniffing".

Per una applicazione, come ben saprete, il file webconfig contiene tutte le impostazioni utili al suo funzionamento.

Ora vi suggerisco una configurazione che può prevenire alcuni attacchi.

Biogna mettere nel web.config la seguente istruzione:

<httpProtocol>

...
      <customHeaders>
       ...
        <add name="X-Content-Type-Options" value="nosniff"/>
      </customHeaders>
    </httpProtocol>

  </system.webServer>

 

L'impostazione dell'intestazione di risposta HTTP X-Content-Type-Options di un server su nosniff indica ai browser di disabilitare il contenuto o lo sniffing che viene utilizzato per sovrascrivere le intestazioni Content-Type di risposta per indovinare ed elaborare i dati utilizzando un tipo di contenuto implicito. Sebbene ciò possa essere conveniente in alcuni scenari, può servire ad evitare alcuni attacchi. La configurazione del server per restituire l'intestazione della risposta HTTP X-Content-Type-Options impostata su nosniff indicherà ai browser che supportano lo sniffing MIME di utilizzare il Content-Type fornito dal server e di non interpretare il contenuto come un tipo di contenuto diverso. Un attacco potrebbe proprio fare questo. Forzare il browser ad interpretare il file "come" un altro tipo di file.

 

Per essere pignoli questa stessa impostazione la si può mettere nel Global.asax:

protected void Application_BeginRequest(object sender, EventArgs e)
{
            this.Response.Headers["X-Content-Type-Options"] = "nosniff";
}

 

Buon lavoro!