2011-11-04 20 views
8

Mamy system, który wysyła regularne maile z linkami w, z których wiele zawiera parametry URL zakodowane takie jak to:Hotmail brudząc z zakodowanym URL Parametry

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

Widać, że parametr „ReturnURL” jest kodowane. Wydaje się jednak, że duża liczba użytkowników (pozornie hotmail) otrzymują e-maile z tym paramater częściowo dekodowane takich jak:

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

Dlaczego byłoby rozszyfrować jak to? Dlaczego tylko częściowo dekodować? Dlatego nie mam pojęcia, jak sobie z tym poradzić. Myślałem o kodowaniu base-64, ale ciągi base64 zawierają znaki, które również wymagają dekodowania ... Myślałem o podwójnym kodowaniu, ale nie będę wiedział, czy podwójnie dekodować tego parametru czy nie ... Czy ktoś może pomóc? Dzięki.

+0

Mamy również tę isse z użytkownikami hotmail. linki działają dobrze w Gmailu itp. Ktoś? – Anders

Odpowiedz

0

Jednym z powodów może to być dzieje się tak, ponieważ przepisy URL dla kodowania are different before and after? więc jeśli mechanizm, który robi dekodowanie robi to z „tyłu” reguł URL i dekodowania jabłka zapytania aż znajdzie pierwszy ? wówczas może to powodować problemu, opisują ...

Nie jestem pewien, jak sobie z tym poradzić, ponieważ rozumiem system, który robi to niewłaściwe dekodowanie poza twoją kontrolą. Próbowałabym ukryć w pewnym sensie zapytanie zwrotne adresu URL ...