Wo kann ich eine Liste mit allen standardmäßigen IIS-HTTP-Handlern abrufen? Ich brauche Dokumentation !! Ich habe ein paar Blogs gelesen, die aus Performance- und Sicherheitsgründen empfehlen, Dutzende von nicht verwendeten HTTP-Handlern zu entfernen.
z. Es wird empfohlen, TraceHandler-Integrated und TraceHandler-Integrated-4.0 zu entfernen, da andernfalls das Navigieren zu /trace.axd in einer Produktionsumgebung zu einem 500 Internal Server Error statt zu 404 Not Found führt und in einer Produktionsumgebung keine Ablaufverfolgung erforderlich ist.
Einige der HTTP-Handler, die ein GitHub-Projekt ( Jetzt gelöscht ) empfiehlt, von Ihrer Site zu entfernen:
%Vor%Wenn Sie wirklich eine minimale Menge von Handlerzuordnungen wünschen, schlage ich vor, dass Sie clean starten, in Ihrer web.config alle Handler entfernen und einfach die StaticFile-Funktion verwenden:
%Vor%Fügen Sie nun alle benötigten Handler hinzu, nur für die Bitness und den Modus, in dem Sie gerade laufen.
Für ein einfaches MVC-Projekt kann es ausreichen,
hinzuzufügen %Vor%Was machen all die Handler?
Ich konnte auch keine Dokumentation finden, also hier ist mein Versuch:
Die Handlerzuordnungen sind in %SystemRoot%\System32\inetsrv\config\applicationHost.config - system.webServer/handlers
In meinem Fall gab es 87 Abbildungen.
50 von ihnen sind modules="IsapiModule" scriptProcessor="...aspnet_isapi.dll"
für ASP.NET. Diese decken alle verschiedenen asp.net-Erweiterungen ab und können für die CLR-Versionen 2.0 und 4.0 sowie für 32-Bit und 64-Bit existieren. Die meisten von ihnen sind für den klassischen Modus.
Sie behandeln normalerweise die folgenden Erweiterungen:
%Vor%Wenn Ihr Projekt bestimmte Erweiterungen nicht verwendet, können Sie diese Handler entfernen.
Die meisten Handler-Zuordnungen haben preCondition
, wie sie in 32-Bit-Anwendungspools oder im klassischen Modus gelten. Wenn Sie nur den 64Big-integrierten Modus ausführen, können Sie alle klassischen Modus- und 32-Bit-Handlerzuordnungen entfernen.
Wenn wir * .cshtml für eine Razor-Ansichtsdatei betrachten, finden Sie drei Zuordnungen, zwei für ClassicMode in 32/64 Bit, die auf die ASP.NET ISAPI-Module verweisen, die dritte jedoch nur im integrierten Modus und in Maps zu HttpForbiddenHandler, weil das MVC-Routing im integrierten Modus anders funktioniert und Sie den Zugriff auf Dateien nicht direkt zulassen möchten.
Es kann IsapiModules für klassisches ASP oder CGI geben, wie das ASP.NET-Mapping dort ist, um die Anforderungen für Dateien mit bestimmten Erweiterungen zu behandeln.
Die zweitgrößte Gruppe sind die type="System.
Handler, schauen wir uns diese an:
System.Runtime.Remoting.Channels.Http.HttpRemotingHandlerFactory
Handelt *.rem
und *.soap
Dateien im integrierten Modus. Kann entfernt werden, wenn Sie keine Remoting-Funktion verwenden.
System.ServiceModel.Activation.HttpHandler, System.ServiceModel.Activation
Behandelt bestimmte WCF-Anfragen mit *.rules,*.xoml,*.svc
Erweiterungen.
System.Web.Handlers.AssemblyResourceLoader
Handles WebResource.axd
-Anfragen, diese können in WebForms verwendet werden, aber normalerweise nicht in MVC-Projekten.
System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions
Zum Behandeln von ScriptResource.axd
, das JavaScript- und CSS-Ressourcen in WebForms bereitstellt.
System.Web.Handlers.TraceHandler
Handler für trace.axd
zum Anzeigen von ASP.NET-Ablaufverfolgungsinformationen In einer Produktionsumgebung möchten Sie diesen Handler entfernen.
System.Web.Handlers.TransferRequestHandler
Wird verwendet, um erweiterungsfreie Anfragen im integrierten Modus zu behandeln. Dadurch wird die Anforderung an die Routing-Engine weitergeleitet, um zu entscheiden, wie mit diesen Anforderungen verfahren wird. Weitere Informationen
System.Web.Handlers.WebAdminHandler
Handles WebAdmin.axd
, um ASP.NET Website Administration Toolkit
anzuzeigen, Sie können dies entfernen, wenn Sie diese integrierte Funktion nicht verwenden.
System.Web.HttpForbiddenHandler
Erlaubt uns den Zugriff auf Dateien mit bestimmten Erweiterungen zu verhindern. Es gibt jedoch einen 500-HTTP-Status zurück und löst tatsächlich eine System.Web.HttpException-Ausnahme auf dem Server aus. Meiner Meinung nach gibt es bessere Möglichkeiten, bestimmte Erweiterungen wie IIS Request Filtering zu bloggen .
System.Web.HttpMethodNotAllowedHandler
Ich denke, das wird nicht mehr in modernen IIS verwendet, es gibt einen 405 HTTP-Status zurück und wirft auch HttpException
System.Web.HttpNotFoundHandler
Auch nicht mehr in meiner aktuellen Konfiguration. Es wird eine HTTP-Ausnahme 404 ausgelöst.
System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions
Handles *.asmx
und *_AppService.axd
, um Web-Service-Aufrufe über Ajax zu unterstützen.
System.Web.Services.Protocols.WebServiceHandlerFactory, System.Web.Services
Behandelt auch *.asmx
Web-Service-Anfragen im integrierten Modus für DOT.NET 2
System.Web.StaticFileHandler
Gibt eine statische Datei zurück, die nicht mehr verwendet wird?
System.Web.UI.PageHandlerFactory
Behandelt ASP.NET-WebForm-Seiten .aspx
im integrierten Modus.
System.Web.UI.SimpleHandlerFactory
Behandelt benutzerdefinierte ASP.NET-Handler .ashx
im integrierten Modus.
System.Xaml.Hosting.XamlHttpHandlerFactory, System.Xaml.Hosting
Übernimmt die Windows Workflow Foundation-Dienste .xamlx
im integrierten Modus.
mehr Handler:
modules="StaticFileModule, DefaultDocumentModule, DirectoryListingModule"
Dies ist normalerweise das allerletzte Mapping, um Anfragen zu bearbeiten, die von keinem der vorherigen Handles behandelt wurden. path="*" verb="*"
. Es verwendet tatsächlich drei verschiedene Module. StaticFileMode sucht nach einer physischen Datei, die der angeforderten URL entspricht. Wenn sie nicht gefunden wird, sucht DefaultDocumentModule nach einem Standarddokument im selben Ordner wie die angeforderte URL. Wenn dies auch nicht gefunden wird, zeigt DirectoryListingModule möglicherweise den Inhalt des Verzeichnisses an aktiviert.
modules="ProtocolSupportModule"
Damit werden alle Anforderungen für die HTTP-Verben TRACE
und OPTIONS
bearbeitet. Wenn Sie diese Zuordnung entfernen, wird bei allen Trace- und Optionsanforderungen eine "405-Methode nicht zulässig"
Beantworten Sie dies
Wo kann ich eine Liste aller standardmäßigen IIS-HTTP-Handler finden?
Öffnen Sie IIS, CMD - & gt; inetmgr, klicken Sie dann auf Handlerzuordnungen, siehe unten Screenshot.
Klicken Sie auf diese Schaltfläche, um alle standardmäßig aktivierten HTTP-Handler für diesen Webserver anzuzeigen.
Hinweis: Wenn Sie ein virtuelles Verzeichnis auswählen und dann diesen Prozess ausführen, d. h. auf Handlerzuordnungen klicken und eines der Zuordnungen entfernen, wird diese Zeile in web.config hinzugefügt.
z. Ich habe aspq-ISAPI-4.0_64bit
entfernt, so dass web.config
für dieses virtuelle Verzeichnis geändert wurde, d. H. Es wurde der web.config die folgende Zeile hinzugefügt.
<remove name="aspq-ISAPI-4.0_64bit" />
unter system.webServer\handlers
.
Aktualisieren : Diese Handler werden aufgerufen, wenn eine bestimmte Dateitypanforderung kommt, bis sie inaktiv ist. Es wird also kein Leistungsproblem für diese Handler geben.
Beispiel, dass Sie removing handler for *.axd will improve security
haben, meine Antwort darauf, einige DLL brauchen möglicherweise diese Dateien zum Rendern von js und css, und wenn Sie das entfernen, wird es nicht funktionieren. Z.B. - HTTP-Handler kann axd nicht finden Datei im verschachtelten Webanwendungsordner: Telerik RadScriptManager kann WebResource.axd nicht im ~ / admin / Ordner finden
Tags und Links asp.net iis security performance httphandler