viernes, abril 30, 2010

Ayuda de SAP: se canceló la navegación a la página web

Luego de actualizar los programas de una PC, entre ellos el Internet Explorer, se presenta el problema siguiente: "Se canceló la navegación a la página web"

Lo primero que podemos pensar es que se trata de un problema del archivo, pero básicamente se trata de un problema de seguridad de Microsoft que normalmente se origina cuando estos archivos de ayuda se encuentran en un servidor de nuestra organización y no en una unidad local de nuestro equipo.

Lo que recomienda Microsoft es en primera instancia copiar los archivos de ayuda a alguna unidad local de nuestro equipo, pero como el espacio puede ser limitado, aquí la solución paso a paso.

Diagnóstico:

Acabamos de actualizar nuestro sistema, sea que acabamos de conectar una nueva PC a la red o quizá solamente tuvimos la inocente intención de actualizar el navegador web que veníamos usando y verificamos que si bien tenemos acceso a los archivos de ayuda que están en una unidad compartida, no es posible visualizar la ayuda ya que aparece este mensaje:
Lo primero que hice fue revisar la versión de la ayuda que tenía instalada en el sistema y al mismo tiempo verificar si había forma de actualizarla, aunque Microsoft indica que si es posible hacerlo, no me consta ni fue necesario, es posible que todos tengamos la misma versión que es la que viene con Windows (en mi caso SP3):
El truco:
Lo que revisé en un par de páginas de internet fue que esto se trata de una actualización de Windows que provoca todos estos males, esta actualización activa una "protección" tal que impide que las páginas, en este caso los archivos *.chm que no se encuentren en una zona segura, puedan ser verificados ya que podrían tener "código malicioso".

Lo primero que tenemos que hacer es verificar en que servidor o en que unidad de red tenemos los archivos que necesitamos consultar, en mi caso se trataba de archivos que tenía en la unidad de red "Y" la cual a su vez se encontraba en la carpeta compartida HTMLHELP del servidor PENS09, dado que el registro exige que las unidades compartidas lleven doble diagonal, tal como si se programara en C, pues les facilito el ejemplo de la entrada de registro que debe ser creada, en realidad solo es necesario copiar y pegar en un archivo de texto que guardaremos con extensión REG y luego combinar dicha información con el registro de Windows:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\HTMLHelp\1.x\ItssRestrictions]
"UrlAllowList"="\\\\PENS09\\HTMLHELP;file://Y:\\SCMHELP\\SCM500\\EN"
"MaxAllowedZone"=dword:00000002
Para tener una idea de como queda esto dentro del registro les adjunto la siguiente imagen (o si prefieren ingresarlo directamente con Regedit.exe:
Una vez actualizado el registro solo tenemos que cerrar la ventana de ayuda que teníamos abierta y volver a abrir los archivos de ayuda CHM o accesos directos que tengamos y el resultado debería ser el esperado:
Explicación y fuentes:

Lo que se hace con este pequeño cambio en el registro es crear la clave ItssRestrictions y adicionalmente dos valores para la misma:
UrlAllowList: las direcciones a las cuales deseamos dar permiso para su visualización de archivos *.chm
MaxAllowedZone: el grado de permiso que le vamos a otorgar a la lista anterior, en este caso "2" que equivale a darle acceso a la intranet, a la máquina y a zona de sitios seguros.
Quien quiera o requiera ampliar su conocimiento respecto a este cambio deberá revisar las siguientes notas:

MS05-026: A vulnerability in HTML Help could allow remote code execution (http://support.microsoft.com/kb/896358)

You cannot open remote content by using the InfoTech protocol after you install security update 896358, security update 840315, or Windows Server 2003 Service Pack 1 (http://support.microsoft.com/kb/896054)

Certain Web sites and HTML Help features may not work after you install security update 896358 or security update 890175 (http://support.microsoft.com/kb/892675/)