2010-11-02 3 views
28

In IIS 7.0integrated mode nach dem Löschen aller Header mit Response.ClearHeaders() IIS würde einige andere Header wie Server und X-Powered-By hinzufügen, die gute Informationen für Hacker offenbart. Wie kann ich dieses Verhalten stoppen (muss ich noch meine benutzerdefinierten Header hinzufügen)?So löschen Sie benutzerdefinierte IIS-Header wie X-Powered-By: ASP.NET aus Antwort?

+0

möglich Duplikat [Entfernen/Ausblenden/Deaktivieren übermäßige HTTP-Response-Header in Azure/IIS7 ohne UrlScan] (http://stackoverflow.com/questions/12803972/removing-hiding-disabling-excessive-http -response-headers-in-azure-iis7-ohne) – CrazyPyro

+0

Ich weiß, dass dieser zuerst gefragt wurde, aber diese andere Frage ist jetzt vollständiger und aktuell. – CrazyPyro

Antwort

11

Die X-Powered-By ist in IIS konfiguriert. Unter Windows 7 ist es speziell:

  1. IIS-Manager
  2. COMPUTER NAME> Sites> Standardwebsite
  3. HTTP Respons Headers
  4. entfernen X-Powered-By

Ich bin nicht sicher, was das erzeugt Server Header obwohl.

+1

Danke. Mindestens 50% Fortschritt. Ich bevorzuge einen allgemeinen Ansatz von innerhalb asp.net wenn möglich. – Xaqron

+0

@Xaqron, Sie können wahrscheinlich programmatisch auf die Einstellung zugreifen, aber ich weiß nicht, wie nebenbei. Es tut uns leid. –

1

URLScan verwendet werden können Server-Header zu entfernen, oder einen anderen Server-Header konfigurieren, http://learn.iis.net/page.aspx/938/urlscan-3-reference/

Aber es verhindert, dass nie wirklich ein Hacker wissen, was Sie tatsächlich nutzen. Es gibt natürlich andere Möglichkeiten, Ihre Serverinformationen zu erkennen.

+0

Danke. Es sollte etwas wie config-Abschnitte oder im schlimmsten Fall eine Registry-Manipulation eingebaut sein, anstatt eine Komponente zu installieren, deren Hauptzweck nicht darin besteht, SERVER-Header zu löschen. – Xaqron

+0

Ich sagte bereits, dass nicht jeder denkt, Server Header zu zeigen ist schlecht. Also warum sollte es eingebaut werden, wenn nur wenige Leute es benutzen? –

54

Sie können diese zu Ihrem Web.Config hinzufügen:

<system.webServer> 
    <httpProtocol> 
     <customHeaders> 
      <remove name="X-Powered-By" /> 
     </customHeaders> 
    </httpProtocol> 
</system.webServer> 

Update: wenn Sie das MVC-Framework verwenden würde ich auch als auch die X-AspNetMvc-Version und X-AspNet-Version Header empfehlen zu entfernen. Dies erreichen Sie, indem Sie MvcHandler.DisableMvcResponseHeader = true in Ihrer Global.asax Datei und <system.web><httpRuntime enableVersionHeader="false" /></system.web> in Ihrer Web.config eingeben.

+3

In IIS 10.0 (und Azure Web Apps) können Sie auch den Header 'Server' mit' 'loswerden. –

5

Für IIS7 + integrierten Modus hat eth0 es: <customHeaders> Tag in web.config. Dank dafür. Wie für den "Server" Header, bei Verwendung von MVC, können Sie einfach hinzufügen:

protected void Application_PreSendRequestHeaders() 
    { 
     Response.Headers.Remove("Server"); 
    } 

auf Ihre MvcApplication Klasse in Global.asax. Andernfalls können Sie einfach ein benutzerdefiniertes HTTP-Modul hinzufügen, das das PreSendRequestHeaders-Ereignis behandelt, und dasselbe tun.

+2

PreSendRequestHeaders ist kein Teil der verwalteten Pipeline und kann seltsame Ergebnisse wie eingefrorene asynchrone Anforderungen erzeugen. http://www.asp.net/aspnet/overview/web-development-best-practices/what-not-to-do-in-aspnet-and-what-to-doinestate#presend. –

Verwandte Themen