NuestroWindows/IIS 7.5El entorno está configurado conEscaneo de URLyFiltrado de solicitudes de IIS. Hemos estado enfrentando un problema con una URL larga.
/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!
Nota: modifiqué la URL, pero esa es la estructura y tiene alrededor de 880 bytes si la pongo en el bloc de notas.
UlrScan.ini
El archivo tiene toda la configuración predeterminada para la sección Límites de solicitud:
MaxAllowedContentLength=30000000
MaxUrl=260
MaxQueryString=2048
Filtrado de solicitudes de IISTambién está habilitado y tiene los valores predeterminados:
<security>
<requestFiltering>
<requestLimits
maxAllowedContentLength="30000000"
maxUrl="4096"
maxQueryString="2048"
/>
</requestFiltering>
</security>
Realicé una prueba y la URL que proporcioné en la parte superior de la publicación falló con un error 403. La URL tiene 880 bytes, por lo que si el filtrado de solicitudes tiene prioridad, no debería fallar, así que supongoEscaneo de URLejecutado sin considerar los límites de solicitudes de IIS.
Le pedí a mi administrador de IIS que proporcionara registros de IIS un par de veces y en los registros compartidos, solo veo 403. No hay errores 404 o 404.14, como se menciona en todos los demás artículos de soporte de Microsoft.
Entonces, ¿es correcta mi observación? Con este tipo de configuración, ¿qué configuración tiene prioridad? ¿Es UrlScan o el filtrado de solicitudes de IIS?
Me encantaría saber si existe una opción para hacer que el filtrado de solicitudes tenga prioridad sobreEscaneo de URLconfiguración, porque el filtrado de solicitudes se puede personalizar hasta el nivel de la aplicación, mientras que el filtrado de solicitudes UrlScan.ini
se puede personalizar solo hasta el nivel del sitio.
Y también, según la documentación de IIS,Escaneo de URLSe están incorporando funciones al filtrado de solicitudes de IIS. Entonces, ¿por qué hay una gran diferencia entre los valores predeterminados para la URL máxima? 260 bytes urlscan.ini
y 4096 bytes en el filtrado de solicitudes de IIS.
Respuesta1
UrlScan detiene la solicitud antes de que llegue al módulo de filtrado de solicitudes de IIS. La solución ideal y recomendada sería desmantelar UrlScan y usar el módulo de filtrado de solicitudes de IIS solo en IIS 7 y superior. Este módulo en IIS 7.5 tiene todas las características de los módulos de urlscan, por lo que no hay ninguna razón técnica para no desmantelarlo. Pero como nuestros administradores no se sentían cómodos con eso, seguimos el siguiente enfoque. Aumente maxUrl en el módulo urlscan a 4096, lo que permite solicitudes largas. El módulo de filtrado de solicitudes se puede configurar a nivel de sitio web predeterminado o a nivel de servidor, que es global, y también a nivel de aplicación individual. Por lo tanto, el nivel de URLScan predeterminado del sitio web se dejó en 460 caracteres, lo que se aplica a todas las aplicaciones, y en mi aplicación, la URL máxima del filtrado de solicitudes está configurada en 4096. De esta manera, las otras 50 aplicaciones tienen los límites establecidos de forma predeterminada hace años y mi aplicación tiene más longitud para atender solicitudes largas.
Gracias.