Would serialized HTML messages be escaped then ? What if someone uses response.flash = A("Hello World", _href="#") ?
On Monday, August 6, 2012 4:50:31 AM UTC+2, Anthony wrote: > > Bump. Should we replace str() with xmlescape() so Ajax flash messages get > escaped, just like regular flash messages and everything else in the view? > > Anthony > > On Saturday, August 4, 2012 9:23:53 PM UTC-4, Anthony wrote: >> >> 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> >> >> >> --