UrlScan und Request-Filterung langer URLs

UrlScan und Request-Filterung langer URLs

UnserWindows/IIS 7.5Umgebung ist konfiguriert mitURLScanUndIIS-Anforderungsfilterung. Wir hatten ein Problem mit einer langen URL.

/MyWeb/TestFW/prweb/Servelt1/ZsvSk3vV8PtgJEa4_x3fiQ[[*/!MyWebApp/webwb/desktop_domainsuffix_1819019784.js!yui_13833664524!desktopwrapper_12997951049!automationscripts_1864420987!ui_jquery_1796787788!desktopwrapper_12997951049!automationscripts_1864420987!ui_jquery_1796787788!

Hinweis: Ich habe die URL geändert, aber das ist die Struktur und es sind etwa 880 Bytes, wenn ich sie in den Editor eingebe.

UlrScan.iniDie Datei enthält die gesamte Standardkonfiguration für den Abschnitt „Anforderungslimits“:

MaxAllowedContentLength=30000000
MaxUrl=260
MaxQueryString=2048

IIS-Anforderungsfilterungist ebenfalls aktiviert und hat die Standardwerte:

<security>
   <requestFiltering>
    <requestLimits
       maxAllowedContentLength="30000000"
       maxUrl="4096"
       maxQueryString="2048" 
                  />
  </requestFiltering>
  </security>

Ich habe einen Test durchgeführt und die URL, die ich oben im Beitrag angegeben habe, ist mit einem 403-Fehler fehlgeschlagen. Die URL ist 880 Bytes groß, wenn also die Anforderungsfilterung Vorrang hat, sollte sie nicht fehlschlagen, also gehe ich davon ausURLScanausgeführt, ohne die Anforderungslimits von IIS zu berücksichtigen.

Ich habe meinen IIS-Administrator mehrmals gebeten, mir die IIS-Protokolle zur Verfügung zu stellen, und in den Protokollen, die ich auch geteilt habe, wird nur 403 angezeigt. Keine 404- oder 404.14-Fehler, wie in allen anderen Support-Artikeln von Microsoft erwähnt.

Ist meine Beobachtung also richtig? Welche Konfiguration hat bei dieser Art der Einrichtung Vorrang? Ist es UrlScan oder die Anforderungsfilterung von IIS?

Ich würde gerne wissen, ob es eine Option gibt, um der Anforderungsfilterung Vorrang zu gebenURLScanEinstellungen, da die Anforderungsfilterung bis zur Anwendungsebene anpassbar ist, wohingegen sie UrlScan.ininur bis zur Site-Ebene anpassbar ist.

Und außerdem, gemäß der IIS-Dokumentation,URLScanFunktionen werden in die Anforderungsfilterung von IIS integriert. Warum gibt es also einen großen Unterschied zwischen den Standardwerten für die maximale URL? 260 Bytes urlscan.iniund 4096 Bytes in der Anforderungsfilterung von IIS.

Antwort1

UrlScan stoppt die Anfrage, bevor sie das IIS-Anforderungsfiltermodul erreicht. Die ideale und empfohlene Lösung wäre, UrlScan außer Betrieb zu nehmen und auf IIS 7 und höher nur das IIS-Anforderungsfiltermodul zu verwenden. Dieses Modul in IIS 7.5 hat alle Funktionen von URLScan-Modulen, es gibt also keinen technischen Grund, es nicht außer Betrieb zu nehmen. Da unsere Administratoren damit aber nicht zufrieden waren, haben wir den folgenden Ansatz gewählt. Erhöhen Sie die maxUrl im URLScan-Modul auf 4096, was lange Anfragen ermöglicht. Das Anforderungsfiltermodul kann standardmäßig auf Website- oder Serverebene konfiguriert werden, was global ist, und auch auf einzelner Anwendungsebene. Also wurde der standardmäßige URLScan auf Websiteebene auf 460 Zeichen belassen, was für alle Anwendungen gilt, und in meiner Anwendung ist die maxUrl der Anforderungsfilterung auf 4096 eingestellt. Auf diese Weise haben alle anderen 50 Anwendungen die vor Jahren standardmäßig festgelegten Beschränkungen, und meine Anwendung hat mehr Länge, um lange Anfragen zu bedienen.

Danke.

verwandte Informationen