On 24 January 2012 15:57, Daniel Friesen <[email protected]> wrote:
> On Tue, 24 Jan 2012 06:16:48 -0800, Tei <[email protected]> wrote:
>
>> On 24 January 2012 06:59, Daniel Friesen <[email protected]>
>> wrote:
>> ..
>>>
>>> Don't delude yourself into thinking that you can easily blacklist the
>>> elements that would run a script.
>>> http://ha.ckers.org/xss.html
>>>
>>
>> What about using textNodes?
>>
>> http://stackoverflow.com/questions/476821/is-a-dom-text-node-guaranteed-to-not-be-interpreted-as-html
>
>
> Then it's just text.
> That's about as safe as throwing everything through htmlspecialchars, it's
> fine.
>
> I'm saying that you can't blacklist things. ie: You can't run a message
> through a jquery message filter, try to strip out script tags from the dom
> and then insert it thinking that you've removed all the XSS vectors.
>

People on the internet suggest something like  $("<div/>").text(
"<script>alert('lets do evil!')</script>" ).html();


postdata:
Some random code I just wrote.

var Stringbuilder = (function(){
  var text = [];
  return {
    add:function(txt){ text.push(txt); return this;},
    encode:function(txt){ text.push( new String( $("<div/>").text( txt
).html() ) ); return this;},
    toString:function() { return text.join(""); }
  };
});

var str = Stringbuilder();

str.add("<table>")
.  add("<tr>")
.  add("<td>")
.  encode("<script>alert('lets do evil!)</script>")
.  add("</td>")
.  add("</tr>")
.  add("</table>");

str.toString();















-- 
--
ℱin del ℳensaje.

_______________________________________________
Wikitech-l mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/wikitech-l

Reply via email to