What is it really? This allows third parties to link to a damaged version of your site.
It fires when [several conditions are met, and] he sees a line in the query view, which also exists verbatim on the page and which, in her opinion, can be dangerous.
It is assumed that if <script>something()</script> exists both in the query string and in the page code, then this should be because your server side of the script is unsafe and reflects this string directly as markup without escaping.
But, of course, in addition to the fact that this is a completely correct request that someone could type, matching by coincidence, it is also so close that they match because someone looked at the page and intentionally copied part of it. For example:
http://www.bing.com/search?q=%3Cscript+type%3D%22text%2Fjavascript%22%3E
Follow this in IE8, and I successfully sabotaged your Bing page so that it would give script errors and pop-up output bits would not work. Essentially, this gives the attacker whose link is licensed to select and disable parts of the page that he does not like, and this may include other security-related measures, such as framebuster scripts.
What does IE8 consider "potentially dangerous? It is much bigger and much weirder than this script tag. For example . Moreover, it seems to correspond to a set of" dangerous templates "using a system of text templates (presumably a regular expression) instead of any kind of HTML parser, such like the one that ultimately parses the page Yes, use IE8 and your browser pař paing HT ̈́͜ ML w ̧̼̜ it ̏̔ h ͙r̿e ̴̬ g ̉̆ e͎x ͍͔̑̃̽̚.
'XSS protection by viewing rows in a request is completely fake . It cannot be “fixed; the concept itself is mistaken in essence. Besides the problem of logging into the system when it is not needed, it can never protect you from everything except the simplest attacks, and attackers are likely to manage such blocks as IE8 will become more be widely used. If you forget to forget your HTML output, you will still be vulnerable; all XSS "protection" may offer you a false sense of security. Unfortunately, Microsoft seems to like this false sense of security; there is a similar "protection in ASP.NET "XSS, server side.
So, if you have the key to creating webapp authoring, and you have correctly selected HTML output as a good boy, it would definitely be nice to disable this unwanted, inoperable, incorrect intrusion by displaying the header:
X-XSS-Protection: 0
in your HTTP responses. (And using ValidateRequest="false" on your pages if you are using ASP.NET.)
For everyone else who is still building strings together in PHP without worrying about proper coding ... well, you can leave it as well. Do not expect it to really protect your users, but your site is already broken, so who cares if it breaks a little more, right?
To see it in action, go to the AOL Food page and click the Print icon just above the story.
Oh yes, I see this violation in IE8. It’s not immediately clear where IE did hack the content, which stopped its execution, though ... the only cross-domain request I see that the candidate for the XSS filter is http://h30405.www3.hp.com/print/start :
POST /print/start HTTP/1.1 Host: h30405.www3.hp.com Referer: http://recipe.aol.com/recipe/oatmeal-butter-cookies/142275? csrfmiddlewaretoken=undefined&characterset=utf-8&location=http%253A%2F%2Frecipe.aol.com%2Frecipe%2Foatmeal-butter-cookies%2F142275&template=recipe&blocks=Dd%3Do%7Efsp%7E%7B%3D%25%3F%3D%3C%28%2B.%2F%2C%28%3D3%3F%3D%7Dsp%7Ct@kfoz%3D%25%3F%3D%7E%7C%7Czqk%7Cpspm%3Db3%3Fd%3Do%7Efsp%7E%7B%3D%25%3F%3D%3C%7D%2F%27%2B%2C.%3D3%3F%3D%7Dsp%7Ct@kfoz%3D%25%3F%3D%7E%7C%7Czqk...
that the blocks parameter continues with pages more gibberish. Presumably, there is something that (coincidentally?) Is reflected in the returned HTML and runs one of IE8's tainted ideas about what the XSS exploit looks like.
To fix this, HP needs to make a server on h30405.www3.hp.com, include the X-XSS-Protection: 0 header X-XSS-Protection: 0 .