ASP.NET MVC3 - Was tun Sie mit Sondierungsanfragen?

8

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?

    
Giedrius 14.11.2011, 07:54
quelle

3 Antworten

10

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

    
Tommy 14.11.2011, 20:02
quelle
3

Das habe ich in einem meiner Projekte in web.config mit PHP als Unteranwendung verwendet:

%Vor%

AKTUALISIEREN

Sie können sich auch diesen Beitrag ansehen

    
Abdul Munim 14.11.2011 08:15
quelle
1

Sie können sich die folgenden Artikel ansehen .

    
Darin Dimitrov 14.11.2011 08:14
quelle