unsere Website ging online und natürlich haben wir eine Menge Sondierungsanfragen erhalten, wie
'/ blog / wp-login.php'
'/admin/admin.php'
usw.
Also Frage ist, was machst du mit ihnen?
Im Moment wird in jedem Fall 404 Fehler geworfen und elmah schickt eine E-Mail darüber, aber ich denke, es wäre besser, zumindest alle PHP-Anfragen überhaupt zu ignorieren.
Wie man das macht, dass solche Anfragen den Server minimal laden würden, ist es möglich, dass die asp.net-Pipeline an solchen Anfragen nicht beteiligt ist?
Oder ist es besser umzuleiten, oder leere Ergebnisse zurückgeben?
Wenn das IgnoreRoutes einfach hinzufügen würde, könnte jemand eine gute Menge von Routen haben, würde das die meisten Anfragen ignorieren?
Ich weiß, dass Sie angegeben haben, dass Sie das Rewrite-Modul in IIS nicht verwenden möchten, da es zusätzliche Belastung für IIS mit sich bringt, aber in Wahrheit ist die Verwendung von IIS weniger aufwendig als die Übergabe an Ihre Anwendung das Gleiche zu tun (obwohl beide Ressourcen sehr klein sind). Wenn Sie die Anfrage mit der minimalen Belastung von IIS und Ihrer Bandbreite ignorieren möchten, würde ich Folgendes vorschlagen:
%Vor%Dieses Neuschreiben mit dem auf AbortRequest eingestellten Aktionstyp trennt die HTTP-Verbindung vollständig und verwirft die Anfrage, es wurden keine 404- oder 403-Fehler zurückgegeben. Entnommen von IIS lernen in der ' Erstellen eines Zugriffsblocks '.
BEARBEITEN - Da es Bedenken seitens des OP gibt, das Rewrite-Modul und die Performance zu verwenden, werde ich eine zweite Option einreichen, die noch die .php-Anfrage abfangen kann, ohne das Rewrite-Modul zu verwenden. IIS7 und höher unterstützen auch die Anforderungsfilterung und gemäß IIS lernen, ist Anforderungsfilterung ...
Das Anfragefiltermodul wird zu Beginn der Anfrage ausgeführt Verarbeitungspipeline durch Behandeln des BeginRequest-Ereignisses. Das Modul wertet die Request-Metadaten wie Header, die Abfragezeichenfolge, Inhaltslänge usw., um festzustellen, ob die Anfrage Metadaten stimmen mit einem vorhandenen Filter überein. Wenn es eine Übereinstimmung gibt, das Modul generiert eine 404 - Antwort (Datei nicht gefunden) und führt dann eine Verknüpfung zum Rest der IIS-Pipeline
Fügen Sie zur Implementierung den folgenden Abschnitt zu Ihrer Datei web.config hinzu:
%Vor%Informationen von URL Rewrite vs Request Filtering und Verwenden der Anforderungsfilterung
Das habe ich in einem meiner Projekte in web.config
mit PHP als Unteranwendung verwendet:
Sie können sich auch diesen Beitrag ansehen
Tags und Links asp.net-mvc asp.net-mvc-3 asp.net iis-7