| <html> |
| <head> |
| <script src="../../resources/js-test-pre.js"></script> |
| </head> |
| <body> |
| <div id="hidden" style="visibility: hidden"> |
| <script id="script">/*"'&<> "'&<> "'&<> */</script> |
| <style id="style">/*"'&<> "'&<> "'&<> */</style> |
| <textarea id="textarea">/*"'&<> "'&<> "'&<> */</textarea> |
| <xmp id="xmp">/*"'&<> "'&<> "'&<> */</xmp> |
| </div> |
| <script> |
| description("Tests that accessing the innerHTML property of a text node encodes harmful entities which can result in cross site scripting."); |
| |
| var tests = [ ['innerHTML("script")' , '"/*"'&<> "'&<> \\"\'&<> */"'], |
| ['innerHTML("style")' , '"/*"'&<> "'&<> \\"\'&<> */"'], |
| ['innerHTML("textarea")', '"/*\\"\'&<> \\"\'&<> \\"\'&<> */"'], |
| ['innerHTML("xmp")' , '"/*"'&<> "'&<> \\"\'&<> */"'], |
| ['outerHTML("script")' , '"<script id=\\"script\\">/*"'&<> "'&<> \\"\'&<> */<\/script>"'], |
| ['outerHTML("style")' , '"<style id=\\"style\\">/*"'&<> "'&<> \\"\'&<> */<\/style>"'], |
| ['outerHTML("textarea")', '"<textarea id=\\"textarea\\">/*\\"\'&<> \\"\'&<> \\"\'&<> */<\/textarea>"'], |
| ['outerHTML("xmp")' , '"<xmp id=\\"xmp\\">/*"'&<> "'&<> \\"\'&<> */<\/xmp>"'], |
| ]; |
| |
| function innerHTML(textnode) { |
| return document.getElementById(textnode).innerHTML; |
| } |
| |
| function outerHTML(textnode) { |
| return document.getElementById(textnode).outerHTML; |
| } |
| |
| for (var i in tests) { |
| shouldBe(tests[i][0], tests[i][1]); |
| } |
| |
| </script> |
| <script src="../../resources/js-test-post.js"></script> |
| </body> |
| </html> |