2011-11-04 19 views
8

Tenemos un sistema que envía correos electrónicos regulares con enlaces en, muchos de los cuales contiene parámetros de URL codificada como este:Hotmail jugar con URL codificada parámetros

href="http://www.mydomain.com/login.aspx?returnurl=http%3A%2F%2Fwww.mydomain.com%2Fview.aspx%3Fid%3D1234%26alert%3Dtrue" 

Se puede ver que el parámetro "ReturnURL" es codificado. Sin embargo, parece que un gran número de nuestros usuarios (aparentemente hotmail) están recibiendo los mensajes de correo electrónico con este parámetro de parte decodificados, tales como:

href="http://www.mydomain.com/login.aspx?returnurl=http://www.mydomain.com/view.aspx?view.aspx%3Fid%3D1234%26alert%3Dtrue" 

¿Por qué sería decodificar así? ¿Por qué solo parcialmente decodificar? Por lo tanto, no tengo idea de cómo lidiar con eso. Pensé en la codificación de base 64, pero las cadenas de base64 contienen caracteres que también necesitarían decodificación ... Pensé en una codificación doble, pero no sabría si decodificar dos veces el parámetro o no ... ¿Alguien puede ayudarme? Gracias.

+0

También vemos esto isse con los usuarios de Hotmail. enlaces funciona bien en gmail, etc. ¿Alguien? – Anders

Respuesta

0

Una de las razones podría estar sucediendo es porque las reglas de URL para la codificación are different before and after? por lo que si el mecanismo que está haciendo decodificación lo hace desde el 'trasero' de las reglas de URL y decodificación de las manzanas consulta hasta que encuentra primero ? entonces esto podría causar un problema que están describiendo ...

Sin embargo, no estoy seguro de cómo manejarlo, ya que entiendo el sistema que hace que esta decodificación inadecuada esté fuera de su control. Yo trataría de ocultar el ? en la consulta de retorno de la URL de alguna manera ...

Cuestiones relacionadas