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>
>>
>>
>>  

-- 



Reply via email to