The opt-out approach sounds bad

The first thing I strongly dislike about the XSS-Filter is that you need to opt-out of it, not opt-in to get it.

Microsoft has in the past introduced non-standard "security" features - I'm thinking specifically about the httponly hack (to prevent a cookie from being accessed in javascript). Whatever the quality or interest of this trick, it was an "opt-in" feature - the developer had to specifically craft http headers to use it.

The opt-out approach means the developer has to first figure out what is causing disruption. Then find the way to fix it. Then change its production code to opt-out from it. This is not actually a new feature you can use, this is (to me) a new burden you need to be sure to workaround (assuming you don't want it, of course).

I don't think this is a nice approach to developers - not to mention this do breaks previously working stuff (whether or not innovation on the web should break backward compatibility is a whole debate on its own, but it's worth noting that Microsoft usually do preserve it).

Put otherwise, I don't want to get through browsers changelogs at each version to ensure they are not putting in something new that will disrupt expected behavior (because I'm a developer, hence I'm lazy, and this is extra-work with no benefit, and I'm not willing to do it :-)).

A few years ago, I was shocked in the same way when Microsoft removed from IE the ability to specify a username and password in a url (eg: http://john:secret@somehost/).

I don't think the question should be: "is my new feature good or not?", but rather, "do I violate established standards with it?", and "do I break previously working legit things with it?". The features that fall in the "yes" category should IMHO be opt-ins.

This feature may not help developers

XSS result from coding errors. Hiding coding errors, or mitigating them in a way that let newbies developers think thus errors are not (so) bad is definitely not helping them.

Maybe I'm old school, but well, that's my past: I learned things the hard way. I got hacked. I got rooted. I made coding and administration mistakes. Maybe not all of them, but a good number of them :-). This is how you learn IMHO.

To me, it sounds like this filter will actually trick people into thinking that sloppy-code is not a risk. Don't fix the problem, have another piece of software filter things out elsewhere. Looks a bit like the "windows need a firewall" story. You need a firewall because you're exposing softwares with security defects on open ports. And people do sloppy-code such softwares because they don't care, because they assume there must be a firewall. So, in the end, I have to explain to mom that she is faulty for not having a firewall in the first place. Repeat after me: users have to take measures to protect themselves. This is normal. Don't dare questioning why. Protect yourself. :-)

This feature may not protect users

It may protect IE8 users - although I do think a side-effect of the above point will be to lower web developers' care level about XSS, hence multiplying vector attacks.

But it definitely won't help protecting people who don't use IE8, actually, it will harm these users, by encouraging web-devs to not care about XSS.

Probably one could state that patching other User Agents is not Microsoft problem, and that others do as well provide extra "security" features. But IMHO there is a distinction between putting out a feature that simply better protects your users, and a feature that does (directly or not) harm users of your concurrents.

This feature seems more like a marketing move

I wouldn't be too surprised if this would be advertised as part of the "IE8 is more secure than X because..." campaign.

Indirectly, I wouldn't be surprised as well if people who have problems on vulnerable sites with browser X get answered by developers that they should use IE8 to be safe (which is not an accurate description of the issue)... contributing to that same marketing effort.

Conclusion

Well,  I don't mean to be harsh for the pleasure of it. Please note I'm not working for a (concurrent) browser maker (at Zoomorama, we are so selfish that we decided to write our own browser rendering our own markup language :-)).

Please finally note I don't have hard feelings on the IE team (past the headaches their damn browser gave me when I was young and doing web stuff! :-))

And yes, some points have been made defending this filter. Notably, that web-developers who don't care fixing XSS issues won't care disabling the filter, resulting in a real security enhancement for users on existing sloppy-anyhow websites.

All-in-all, any security effort on the web should be applauded, and I'm rather sure that the boys who developed it actually meant to go that way (yeah, I poked them in the previous post - my wicked humor :-)).


But still, I'm egoistically concerned about what's good or bad for me or my team as a developer :-), then about what's good or bad for the future of the web.

And despite the proponents' points, I still have a hard time figuring out how that feature would qualify as "good" in either category, for the reasons exposed.

In the hope this post helped somehow (at least in being better than the previous one), peace.