On Saturday, August 4, 2012 7:00:18 PM UTC-4, dbdeveloper wrote:
>
> I do not understand what the problem with decodeURIComponent()?
>
When I tried trunk, I think there was a problem with the encoding of my
controller file (ANSI instead of UTF-8) -- in that case, I guess
urllib2.quote didn't yield the correct output for decodeURIComponent (same
problem in the earlier version, when the escaping was done on the client
side via the Javascript escape() function). Now it works.
In any case, a remaining issue is that there's still no escaping of
potentially dangerous content in the flash message. Everything written to
HTML by web2py is typically escaped, including regular flash messages. The
only content that isn't getting escaped are flash messages for Ajax
components. To be consistent (and safe), we should probably escape those
messages as well (you can always put them in an XML() if you don't want
them escaped, as with any template content). In main.py, I replaced:
urllib2.quote(str(response.flash).replace('\n',''))
with:
urllib2.quote(xmlescape(response.flash).replace('\n',''))
With that change, the flash message still looks fine (see screenshot below).
Anthony
<https://lh3.googleusercontent.com/-Z8G64F_zCv4/UB3KLUoUcGI/AAAAAAAABK8/sO9okzpFtJ4/s1600/flash.png>
--