Problemas Conocidos de BotDetect ASP CAPTCHA
Esta página muestra problemas conocidos relacionados con BotDetect ASP CAPTCHA, con explicaciones de porqué ocurren y sugerencias para solucionarlos.
- [#4220852] El audio de BotDetect CAPTCHA no se reproduce en IE 6.0 usando compresión del lado del servidor
- [#4220851] BotDetect Audio CAPTCHA truncado en Firefox
- [#4220862] Usuarios de Google Chrome y el CAPTCHA de audio
- [#4220861] SSL Offloading y Audio CAPTCHA en IE
El audio de BotDetect CAPTCHA no se reproduce en IE 6.0 usando compresión del lado del servidor
ID del problema
#4220852
Productos afectados
BotDetect ASP CAPTCHA v2.0.*
Clientes afectados
IE 6.0
Estado
Problema de terceras partes - no se puede arreglar
Description
Si tiene habilitado la compresión de contenido dinámica IIS en sus servidores para rutas BotDetect CAPTCHA, el audio CAPTCHA no se reproducirá en navegadores IE 6.0.
Pasos para reproducir
- Abra una página usando BotDetect ASP CAPTCHA en IE 6.0
- Haga click en el ícono del parlante - nada se escuchará
- Click-derecho sobre el ícono del parlante y seleccione "Abrir enlace en una nueva pestaña" - el archivo de sonido contendrá el código CAPTCHA completo
Explicación
Este problema sólo ocurre cuando tiene habilitado la compresión de contenido dinámico para rutas .asp en sus servidores.
Como descargar el archivo (mediante hacer clic-derecho en el ícono de parlante y seleccionando "Abrir enlace en una nueva pestaña") y reproduciendolo en Winamp funciona correctamente, probablemente hay un problema de comunicación entre IE y el plug-in del reproductor de sonido (Windows Media Player). Quizás la longitud del contenido comprimido es transmitido al reproductor en lugar del completo (descomprimido), lo que causaría que sólo una parte del archivo de sonido se reproduciera
Soluciones
Este problema puede ser resuelto desabilitando la compresión gzip para los sonidos CAPTCHA. La manera más simple para hacer esto es ajustando la propiedad ISS de metabase:
cscript c:\Inetpub\AdminScripts\adsutil.vbs SET W3SVC/Filters/Compression/gzip/HcDoDynamicCompression "FALSE" iisreset
Por favor note que esto desabilitará la compresión para todo el contenido con tipos definidos en la propiedad HcScriptFileExtensions.
Si quiere continuar comprimiendo sus páginas .asp y otro contenido dinámico, pero deshabilitar la compresión para BotDetect, puede utilizar una diferente extensión para el archivo LanapBotDetectHandler.asp, el cual no debe ser incluído en la propiedad HcScriptFileExtensions.
Al hacer esto, debe revisar que esa nueva extensión sea correctamente redirigida al motor de interpretación de ASP, en el servidor IIS.
BotDetect Audio CAPTCHA truncado en Firefox
ID del problema
#4120851
Productos afectados
BotDetect ASP CAPTCHA v2.0.*
Clientes afectados
Firefox 2.0.*
Estado
Problema de terceras partes - no se puede arreglar
Description
Si tiene habilitado la compresión de contenido dinámica IIS en sus servidores para rutas BotDetect CAPTCHA, el audio CAPTCHA sólo reproducirá los primeros caracteres del código CAPTCHA en navegadores Firefox.
Pasos para reproducir
- Abra una página usando BotDetect ASP CAPTCHA en Firefox 2.0 o 3.0
- Haga click en el ícono del parlante - sólo los caracteres del comienzo del código serán reproducidos (por ejemplo, los primeros 3 caracteres de un código CAPTCHA de 5 caracteres)
- Click-derecho sobre el ícono del parlante y seleccione "Abrir enlace en una nueva pestaña" - el archivo de sonido contendrá el código CAPTCHA completo
Explicación
Este problema sólo ocurre cuando tiene habilitado la compresión de contenido dinámico para rutas .asp en sus servidores.
Como descargar el archivo (mediante hacer clic-derecho en el ícono de parlante y seleccionando "Abrir enlace en una nueva pestaña") y reproduciendolo en Winamp funciona correctamente, probablemente hay un problema de comunicación entre Firefox y el plug-in del reproductor de sonido (QuickTime en nuestras máquinas de prueba). Quizás la longitud del contenido comprimido es transmitido al reproductor en lugar del completo (descomprimido), lo que causaría que sólo una parte del archivo de sonido se reproduciera.
Soluciones
Este problema puede ser resuelto desabilitando la compresión gzip para los sonidos CAPTCHA. La manera más simple para hacer esto es ajustando la propiedad ISS de metabase:
cscript c:\Inetpub\AdminScripts\adsutil.vbs SET W3SVC/Filters/Compression/gzip/HcDoDynamicCompression "FALSE" iisreset
Por favor note que esto desabilitará la compresión para todo el contenido con tipos definidos en la propiedad HcScriptFileExtensions.
Si quiere continuar comprimiendo sus páginas .asp y otro contenido dinámico, pero deshabilitar la compresión para BotDetect, puede utilizar una diferente extensión para el archivo LanapBotDetectHandler.asp, el cual no debe ser incluído en la propiedad HcScriptFileExtensions.
Al hacer esto, debe revisar que esa nueva extensión sea correctamente redirigida al motor de interpretación de ASP, en el servidor IIS.
Usuarios de Google Chrome y el CAPTCHA de audio
ID del problema
#4120862
Productos afectados
BotDetect ASP CAPTCHA v2.0.1 - v2.0.8
Clientes afectados
Google Chrome 0.2.149.27, 0.2.149.29
Estado
Reparado en la versión v2.0.9
Descripción
En versiones beta de Google Chrome el audio del captcha CAPTCHA es diferente al código CAPTCHA de la imagen.
Pasos para reproducir
- Abrir una página usando el CAPTCHA BotDetect ASP CAPTCHA en Google Chrome
- Clic en el ícono del parlante - el sonido contendrá caracteres distintos que los que se ven en la imagen CAPTCHA
- Intente validar el CAPTCHA usando el código hablado - la validación fallará
- Intente validar el CAPTCHA usando el código mostrado - la validación será exitosa
- Clic-derecho en el ícono del parlante y seleccionar "Abrir enlace en una nueva pestaña", entonces descargar y abrir el archivo .wav - el código hablado será correcto
Explicación
La causa de este error puede encontrarse al revisar el log de ejecución de IIS (levemente modificado para esta explicación):
05:19:21 GET /LanapBotDetectHandler.asp Command=CreateImage Chrome 0.2.149.29 - 05:19:26 GET /LanapBotDetectHandler.asp Command=CreateImage&d=1221085161052 Chrome 0.2.149.29 +ASPSESSIONIDQAQCSDRR=IBCNCFFAPJBKGFDNLIBFIBLO 05:19:28 GET /LanapBotDetectHandler.asp Command=CreateSound&d=1221085163229 Windows-Media-Player/10.00.00.4051 ASPSESSIONIDQAQCSCQQ=KNGDHDFAGDIFBPCPMBDAPIGC; +ASPSESSIONIDSCRBSCQR=GELBCEFAJEMMHGEGHOICCBEN 05:19:28 GET /LanapBotDetectHandler.asp Command=CreateSound&d=1221085163229 IE 6.0 ASPSESSIONIDQAQCSCQQ=KNGDHDFAGDIFBPCPMBDAPIGC; +ASPSESSIONIDSCRBSCQR=GELBCEFAJEMMHGEGHOICCBEN; +ASPSESSIONIDQAQCSDRR=JBCNCFFAIMEHBAPPIPAEAEFH
Las entradas del log fueron generadas por las siguientes operaciones:
- Cargar la página en Google Chrome, la pagina que incluye el CAPTCHA
- Hacer clic en el botón de refrescar (así podemos ver el hash interno que se usó)
- Presione el botón del altacoz para escuchar el sonido del código del CAPTCHA
Por algún motivo, como muestra el historial, Chrome hace referencia a un código incorrecto, para Windows Media Player. En 10 pruebas hechas por nosotros, obtuvimos un resultado similar (a veces ni siquiera se creaba la cookie de sesión).
Cómo la sesión de ASP necesita de la cookie no hay una forma directa de repararla (a menos que escribamos nuevamente el manejo de sesiones), y como no sabemos porqué se hace una referencia incorrecta, es poco lo que podemos hacer para reparalo.
Soluciones
Si se presenta este problema, por favor actualice su versión de BotDetect ASP CAPTCHA a la versión v2.0.9 o más nueva - esto soluciona el problema guardando una copia del código CAPTCHA en el estado de la aplicación "Application state" para los usuarios de Chrome, permitiendo que el sonido se genere cuando la sesión de estado no pueda ser accesada como es explicado anteriormente. El texto del recuadro inferior presenta una solución para versiones antiguas del componente Captcha.
Note que las versiones de BotDetect en ASP.NET no tienen este problema (como puede comprobarse en la demostración en línea), en donde se reparó un problema similar causado por Windows Media Player (para más detalles vea la entrada de las preguntas más frecuentes). Lamentablemente, no podemos usar esa misma solución en esta versión del producto, por pequeños cambios en el problema.
Algo que puede hacer es intentar cambiar el código del sonido:
<a href='LanapBotDetectHandler.asp?Command=CreateSound'
onclick='LBD_LoadSound("SampleForm_SoundPlaceholder",
"LanapBotDetectHandler.asp?Command=CreateSound");return false;'
title="Speak the code">
<img src="speaker.gif" alt="Speak the code"/>
</a>
a un código como el siguiente
<a href='LanapBotDetectHandler.asp?Command=CreateSound'
title="Speak the code">
<img src="speaker.gif" alt="Speak the code" />
</a>
Esto deshabilitará la reproducción automática del sonido por medio de Javascript, mostrando el diálogo tradicional de descarga de archivos. Esto hace una experiencia de usuario un tanto menos "agradable" pero es un pequeño costo por mantener la usabilidad del CAPTCHA en ambientes con navegadores Chrome. De todas formas, si desea mantener la funcionalidad de forma perfecta, puede considerar la conversión de su código a un equivalente sobre el CAPTCHA basado en ASP.NET.
SSL OFFloading y Audio CAPTCHA en IE
ID del problema
#4120861
Productos afectados
BotDetect ASP CAPTCHA v2.0.*
Affected clients
IE 6.0, IE 7.0
Status
Reparado en la versión v2.0.9
Descripción
Si está usando SSL offloading, por ejemplo solicitudes HTTPS a su sitio son decifradas por un proxy especial y transmitido a su servidor web sobre HTTP plano, usuarios de IE no podrán usar audio CAPTCHA.
Pasos para reproducir
- Abrir una página usando el CAPTCHA BotDetect ASP sobre HTTPS en Internet Explorer 6.0 o 7.0
- Click en el ícono del parlante - ningún sonido será reproducido
- Click-derecho en el ícono del parlante y seleccionar "Abrir en una pestaña nueva" - un error ocurrirá, diciendo que IE no puede descargar el archivo
Explicación
El problema es causado por las descargas de archivos de IE no funcionando si el servidor envía un archivo por SSL con el encabezado no-cache. IE interpreta el encabezado como una prohibición estricta de guardar el archivo localmente, lo que significa que el archivo de sonido no es descargado en el cliente. Como el archivo de sonido primero necesita ser descargado para ser reproducido, esto significa que el CAPTCHA de sonido nunca es reproducido.
En otros navegadores probamos esto en contra (Firefox, Opera, Safari), este encabezado es interpretado diferente, lo que significa que el archivo de sonido puede ser descargado (y reproducido), pero no es reutilizado. IE también trabaja adecuadamente cuando no usa SSL. En otras palabras, es el caso de uso no-cache + SSL + IE que es problemático.
Cuando no se usa SSL, el encabezado no-cache es requerido, de lo contrario hay casos de uso que cuando se cambia el CAPTCHA de imagen no resulta en el cambio equivalente en el CAPTCHA de sonido, ya que el navegador reutiliza el archivo de sonido antiguo.
Asi que la solución que usamos en la última versión de BotDetect es enviar el encabezado no-cache solo si SSL no es usado. En otras palabras, el código es similar a:
If (Request.ServerVariables("HTTPS")="off") Then
Response.CacheControl = "no-cache"
Response.AddHeader "Pragma", "no-cache"
Response.Expires = -1
End If
Ya que el código es obviamente ejecutado en el servidor web, esto sólo funciona si la solicitud es enviada al servidor web por medio de SSL. Pero si el offloading de SSL significa que las peticiones SSL son hechas a un artefacto de red especial, que decripta el tráfico y envía peticiones planas HTTP al servidor web, el servidor web no sabrá que la petición actual es hecha sobre SSL.
En otras palabras, context.Request.IsSecureConnection será falso al punto de ejecución aún incluso si la petición original fue hecha sobre SSL. Esto en su momento resultará en que la cabecera no-cache será enviada a los clientes IE, retornando los problemas originales.
Soluciones
Si se presenta este problema, por favor actualice su versión de BotDetect ASP CAPTCHA a la versión v2.0.9 o más nueva - esto soluciona el problema gusando una detección de SSL desde el lado del cliente para manejar ciertos casos en donde la detección de SSL desde el lado del servidor es insuficiente. El texto del recuadro inferior presenta una solución para versiones antiguas del componente Captcha.
Nuestro componente necesita encargarse del más alto rango posible de buscadores y casos de uso, asi que la solución general es no-trivial - a pesar de la descarga de SSL, el servidor web aún necesita saber que la petición fue originalmente enviada sobre SSL, y que la cabecera apropiada fue enviada acordamente. Esto se puede lograr mandando petición de soindo especial de parámetro querystring (cadena de consulta), que es seteado en el sonido que está reproduciendo JavaScript dependiendo de cómo el cliente ve la página (HTTP o HTTP plano), por ejemplo. Investigaremos esta solución en versiones futuras de BotDetect.
Puede tratar de ver los ajustes de la descarga de SSL, quizás hay una solución existente para casos en los cuales el servidor necesita saber que está siendo accedido via SSL incluso si este está descargado. Si la propiedad Request.ServerVariables("HTTPS") de ASP pudiese configurarse perfectamente, el problema sería fácilmente resuelto.
Adicionalmente, si usted usará CAPTCHA en páginas que serán accesadas por medio de SSL, podría modificar el archivo LanapBotDetectHandler.asp con tal de que usted no tenga que manejar directamente la consulta, quitando todas las lógica relacionada con la detección SSL y asumiendo de que siempre se estará usando SSL.
Versiones Actuales de BotDetect
- BotDetect ASP.NET CAPTCHA v2.0.152009–11–23
- BotDetect ASP CAPTCHA v2.0.92009–02–12
Advertencia
Esta página es una traducción no oficial de la página original: BotDetect ASP CAPTCHA Known Issues y puede estar incompleta, incorrecta o poco actualizada.
Última traducción del 2009-12-18. Esto se aplica para los productos BotDetect ASP.NET CAPTCHA v2.0.15 y BotDetect ASP CAPTCHA v2.0.9.





