Earlier quoted context omitted.
Could you elaborate on this or point me to a site that explains the security risks? For my product, I have a web app that does 100% of the rendering in Javascript so I use html() a lot. I adhere by the rule that I don't trust anything that comes from the client so I'm curious to learn what the security problem may be. Thanks.
All you need: http://www.owasp.org/index.php/XSS
Because Spain won, jQuery: Novice to Ninja is free for 24 hours
51–60 of 70 posts
Re: Because Spain won, jQuery: Novice to Ninja is free for 24 hours
#52Earlier quoted context omitted.
All you need: http://www.owasp.org/index.php/XSS
Thanks for the link but I really don't see anywhere where it says using something like html() would be a greater risk. The rule of thumb is to sanitize information from untrusted sources. And as long as you adhere to this rule, I really don't see how using html() would pose a security threat. That is unless I'm missing something?
Re: Because Spain won, jQuery: Novice to Ninja is free for 24 hours
#53Re: Because Spain won, jQuery: Novice to Ninja is free for 24 hours
#54Earlier quoted context omitted.
Thanks for the link but I really don't see anywhere where it says using something like html() would be a greater risk. The rule of thumb is to sanitize information from untrusted sources. And as long as you adhere to this rule, I really don't see how using html() would pose a security threat. That is unless I'm missing something?
I think the suggestion is that programmatically creating specific DOM nodes is safer than handing the library a string containing user input and hoping that the browser doesn't interpret it in a way that corrupts the DOM.
Re: Because Spain won, jQuery: Novice to Ninja is free for 24 hours
#55Hi - It's Jen from SitePoint, here. Glad to hear you guys are enjoying the free copy of jQuery:Novice to Ninja! As for marketing emails, we always include an "unsubscribe" link. SitePoint will never sell your email address or your information. Enjoy the freebie!
Re: Because Spain won, jQuery: Novice to Ninja is free for 24 hours
#56Re: Because Spain won, jQuery: Novice to Ninja is free for 24 hours
#57Re: Because Spain won, jQuery: Novice to Ninja is free for 24 hours
#58Earlier quoted context omitted.
I think the suggestion is that programmatically creating specific DOM nodes is safer than handing the library a string containing user input and hoping that the browser doesn't interpret it in a way that corrupts the DOM.
I certainly agree with this but I think it's misleading to say it increases your chances for xss security threats. I can see it increasing the chances of having a webpage not behave properly across all browsers though.
If you insert this into the DOM with html(), it will execute the script, doing bad things. If you insert it into the dom with e.g. text(), it won't be interpreted.
Re: Because Spain won, jQuery: Novice to Ninja is free for 24 hours
#59Interesting book, I just wish it didn't use the .html() function that much, especially the .html(externalInput) pattern - it's a great way to open XSS (cross-site scripting) vulnerabilities on your page unless you're very careful and the author apparently doesn't warn the reader to be careful.
Could you elaborate on this or point me to a site that explains the security risks? For my product, I have a web app that does 100% of the rendering in Javascript so I use html() a lot. I adhere by the rule that I don't trust anything that comes from the client so I'm curious to learn what the security problem may be. Thanks.
Re: Because Spain won, jQuery: Novice to Ninja is free for 24 hours
#60Earlier quoted context omitted.
I certainly agree with this but I think it's misleading to say it increases your chances for xss security threats. I can see it increasing the chances of having a webpage not behave properly across all browsers though.
Say some " do_bad_stuff(); " got through from some source you just expected to have text. (e.g. this happened for youtube the other day) If you insert this into the DOM with html(), it will execute the script, doing bad things. If you insert it into the dom with e.g. text(), it won't be interpreted.