On Tuesday, October 30, 2012 6:04:45 PM UTC+1, Matthew Dempsky wrote:
>
> On Tue, Oct 30, 2012 at 9:53 AM, Jose María Zaragoza 
> <[email protected]<javascript:>
> > wrote:
>
>> public void print(String message)
>> {
>>    widget.setHTML(message)
>> }
>>
>> this.print("<br>This is an error</br>");
>> this.print("<br>This is another error</br>");
>>
>
> This code is fine.  The risk comes from if you have something like
>
>     this.print(user.getName());
>
> and a user sets their name to "<script>alert(1)</script>".  But if you 
> look at either the print() function implementation or any of the callers in 
> isolation, it's not clear that there's an issue.  It's only if you look at 
> the whole application at once that you can realize there's an issue.
>
> This is also the motivation for GWT's SafeHtml libraries.  When used 
> correctly, it makes it easier to security review GWT code without needing 
> to double check whether any given function treats its string arguments as 
> plain text or HTML.
>

Not sure <script>alert(1)</script> would be "at risk" here, as browsers 
generally (I said *generally*, I'm sure there are exceptions, IE maybe?) 
don't execute <script>s on assigning innerHTML; but there are things like 
onclick="alert(1)", <img src="http://vilain";>, <img src="neverland" 
onerror="alert(1)">, <iframe 
style="position:absolute;top:0;left:0;bottom:0;right:0;" 
src="http://vilain";></iframe>, etc.

SafeHtml and SafeStyles solve the "primitive obsession" anti-pattern: 
http://c2.com/cgi/wiki?NoStrings

-- 
You received this message because you are subscribed to the Google Groups 
"Google Web Toolkit" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/google-web-toolkit/-/S--9PXzMLPcJ.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en.

Reply via email to