IIS7 – Community Server: URL con carácter +. Error: The request filtering module is configured to deny a request that contains a double escape sequence

Hace unos días con Diego nos dimos cuenta que el sitio donde alojamos nuestro blog empresarial sobre IIS7 algunos enlaces no estaban funcionando. Esos enlaces tenían en común mismo mensaje de error que detallo mas adelante el post…algunos enlaces eran por imágenes especificas (como arma la url el CS=Community Server) y por algo que necesitábamos la URL del RSS de un tag (etiqueta) especifico con espacios.
La solución al problema (que es una limitación por razones de seguridad) no muy rebuscada, ya que el mismo IIS7 nos la brinda; pero quiero aclarar que es mejor realizarlo en el archivo de configuración del sitio (aplicación web) donde lo necesitamos para que nuestro IIS7 siga con este “bloqueo”

PD: Vuelvo a escribir un titulo largo para el post… mmm! algo me esta sucediendo. No tengo capacidad de resumen? tal vez… o quiero que sea mas “friendly a los buscadores” 😉

Vamos al tema…

Problema

Mas que un problema era una limitación por razones de seguridad

image

También teníamos problemas con los RSS de los tags que tenían espacios en blanco
image

Causa.

(by Microsoft Support)
“(…)La solicitud HTTP en el servidor Web contiene una secuencia de escape dobles. Sin embargo, la característica filtrado de solicitudes está configurada para que el servidor Web deniega secuencias de escape dobles.(…)

Mensaje de error:

HTTP Error 404.11 – Not Found
The request filtering module is configured to deny a request that contains a double escape sequence.

image

 

 

 

La solución viene dada directamente por el IIS7 😉

Si estamos en el servidor web podremos ver un detalle mas fino del problema y su solución

image

Things you can try:  Verify the configuration/system.webServer/security/requestFiltering@allowDoubleEscaping setting in the applicationhost.config or web.config file.

image

Entonces para no estar manipulando el archivo del servidor applicationHost.config o el web.config de nuestra aplicación web

Solución con script

Ejecutando:
%windir%system32inetsrvappcmd set config “Default Web Site” -section:system.webServer/security/requestfiltering – allowDoubleEscaping=”true”

NOTA: No utilice este comando AppCmd  pero nos podemos dar cuenta que donde dice “Default Web Site” es el nombre de nuestro website.
MAS INFO:
  – IIS 7.0: Start Appcmd.exe
  – Getting Started with AppCmd.exe
  – Most Important AppCmd Commands
  – Cómo utilizar la herramienta de línea de comandos de appcmd.exe para habilitar y configurar el registro de HTTP y otras características de Internet Information Services 7.0
        

Solución manual (manipulando archivos .config)

Aquí manipulando archivo applicationHost.config o el web.config de tu aplicación en particular. Lo cual esto ultimo solo influye en el sitio (aplicación) que necesitamos
Entonces mi recomendación: hazlo en el web.config de tu app.

  • Ubicación del applicationHost.config
    %windir%System32inetsrvconfigapplicationHost.config
  • Ubicacion del web.config:
    El directorio raiz de tu aplicacion web.
    En nuestro caso quedo :
    image

 

 

Enlaces

 

 

Un comentario en “IIS7 – Community Server: URL con carácter +. Error: The request filtering module is configured to deny a request that contains a double escape sequence”

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *