Testers Say IE 11 Can Impersonate Firefox Via User Agent String
Billly Gates writes "With the new leaked videos and screenshots of Windows Blue released, IE 11 is also included. IE 10 just came out weeks ago for Windows 7 users and Microsoft is more determined than ever to prevent IE from becoming irrelevant as Firefox and Chrome scream past it by also including a faster release schedule. A few beta testers reported that IE 11 changed its user agent string from MSIE to IE with the 'like gecko' command included. Microsoft may be doing this to stop web developers stop feeding broken IE 6-8 code and refusing to serve HTML 5/CSS 3 whenever it detects MSIE in its user agent string. Unfortunately this will break many business apps that are tied to ancient and specific version of IE. Will this cause more hours of work for web developers? Or does IE10+ really act like Chrome or Firefox and this will finally end the hell of custom CSS tricks?"
Unfortunately this will break many business apps that are tied to ancient and specific version of IE. Will this cause more hours of work for web developers?
Too bad if it does. Their excuses wore out long ago.
I Say Firefox Can Impersonate IE11 Via User Agent String.
Microsoft thought they could subvert the web by creating their own standards, and it worked for awhile, and now that same strategy ended up biting their own behinds. I'm enjoying this popcorn. It has Karma written in the container.
Wouldn't a better headline be "IE 11 user agent string changes from MSIE to IE," since most of the summary is about that?
The headline isn't even discussed in the summary.
However, it's obvious the standard ability of browsers to report a different user agent for dev and testing has been sensationalized here just for click generation.
Business apps designed specifically for IE6 might not work with IE11? I'm shocked! That's terrible! What is this world coming to? Or should I say, to what is this world coming?(don't answer that)
Or that they've added 'like gecko' which is actually the point of the article. Although they might have been better impersonating Chrome since it's more popular:
http://en.wikipedia.org/wiki/Usage_share_of_web_browsers
Ignore User-Agent and redirect any request containing one or more headers starting in "X-MS" to http://www.kmfms.com/
The day that the first website was able to detect what client was being used to view it, we were in trouble.
Whether it was people trying to "fix" ancient Opera (and still some sites had such tests until very recently), people telling you what browser to use (i.e. not accepting Netscape / IE of certain versions - I still know of a UK bank that stops you logging in as certain browsers, but fake the user agent string and it works 100%), or just plain faffing about (i.e. iPlayer detecting the user-agent to see if it's "allowed" to download the iPad streams, etc.).
The day that you were able to tell what someone was running and make a decision based on that, we basically lost the point of a standard. If someone has a client that can't render a standard page, then that's their problem and we should have left them to it - eventually they would have complained to the relevant person and their browser would become closer to the standard. We would also have killed off abominations like non-standard HTML tags and everything else.
If you have CSS, in this day and age, that does detection of the user-agent, then that's your problem - you manage it and if it ever affects my usage of it, I'll be complaining and going elsewhere. If you have a browser that can't change the user-agent at will and still work, then that's a crap browser (purely because the user should be in control of the website they are displaying and not the other way around). Precisely because we're all too stupid to just make browsers and websites conform to a common standard.
Personally, I use Opera - have done for nearly a decade now. If it doesn't work in Opera, I move on and go somewhere else. The number of times it's stopped me doing something I wanted is vanishingly small (probably 4-5 incidents in all that time), and I've blamed the website every time - not Opera (because in every instance, faking the user-agent to something else has fixed the problem, so it's not the browser). It's cost several small companies my custom (not that they would be able to tell, or care).
Fact is, my life is too short to play games with accessing your website. If I can't, I move on. End of. I've even moved my bank accounts because of it (NatWest, in the UK, had a website that refused to work with anything but ancient versions of IE or Netscape - yes, it actually said Netscape even in the era of Firefox - and they refused to fix it "for security reasons", so I moved on. Presumably they've fixed it now, but I don't really care because the damage was done by not being able to log into it at my convenience).
You have a website because you want people to come to it and see your content. Hiding that content, because you don't know how to properly display it, is so counter-productive, I can't even begin to explain it. If the fancy shit you're pulling messed up my browser (which conforms to all the ACID tests and general compatibility with EVERY OTHER SITE on the planet), maybe you should take that fancy shit off?
...karma really DOES exist!
Well... yeah but no. Their being different enough to make everyone else think all the other browsers were broken worked. Only web deveopers knew differently. And the business apps only worked under MSIE thing ensured people wouldn't migrate their client machines from Windows.
I have to wonder what Microsoft will pull next. As their game ran its course and more and more things went the standards route, what's next?
I've been developing web applications full time since 1996 and I've never once had to resort to browser detection via user agent strings. It's just bad practice.
The fact that some people have been doing this has led to the very convoluted user agent strings we see today, rather than a simple description of the browser / rendering engine and version.
It's perfectly possible to write code that works cross-browser without having to detect browsers via user agent strings. The closest I've come to any sort of browser specific code is occasionally including IE specific CSS to work around IE bugs, but this included in an IE specific way and is ignored by other browsers.
A browser vendor should be able to put whatever they like in the user agent string, and if that breaks a web site or application, then so be it. It's the fault of the developer for making assumptions.
Back in 2003 msn.com deliberately sent Opera a faulty style sheet that broke the page, in response and to make a point Opera released a Bork version of their browser that turned msn.com into Swedish Chef talk. http://news.cnet.com/2100-1023-984632.html
Karma is a Bitch.
"I have downloaded hundreds and hundreds of records, why would I care if somebody downloads ours?" Robin Pecknold
The OP says Firefox and Chrome have a faster release schedule but fails to mention the content of those releases by Firefox and Chrome are minor where the updates of IE are major. You can't say that because Firefox and Chrome release a new "version" every month that they're better or more innovative. They just consider everything worthy of a version upgrade. Add a built-in pdf viewer, increment the version number; change the font style, bump the version up one; add some other good or inconsequential feature, release a new version. It is really misleading but it obviously tricked the OP into thinking it's better.
<!--[if lte IE 9]>We have detected that you are using Microsoft Internet Explorer which may be running the plugin called StealYourCreditCardInformation.virus.B. That plugin tends to break the layout you see on our site because our site is very secure and that plugin can not operate on our site. If things look broken, we suggest you uninstall that plugin, or use a good web-browser like Google Chrome, Mozilla Firefox, or Opera.<![endif]-->
That goes on the top of the page. I then go out of my way to make use of all CSS that triggers IE-specific bugs.
The format is not well-defined, hence hard to impossible to correctly parse. JavaScript should query the navigator object and not use the UA at all. A very long time ago the UA was used by web statistics software but has since become a relic. Just ignore that it even exists. That header should have been deprecated years ago.
So if an application breaks because of the UA, beat the developer with a stick
Nothing particularly new.
I suppose we have to be grateful for MS in doing this providing they're now supporting standards rather than half implementing them. Sites shouldn't be testing for Gecko or Webkit either though or they'll be creating a problem for themselves down the line just like the one with IE 6/7 now. They should be programatically testing the features they need and avoid what the browser engine is as much as possible.
Firefox can do the same thing with a plug-in, used it alot for testing mobile devices as I would enter their user agent string.
Every version of IE, at least back to IE4, and probably even older, had the user agent string "Mozilla/4.0" and later "Mozilla/5.0".
For those who don't know, Mozilla was the code name of Netscape Navigator, later it became the name of the new open source version of Netscape, called Mozilla, and ended up as the name of the organization behind Firefox.
So no, they didn't start impersonating Firefox. They just updated the string to impersonate a newer version.
The faster release schedule doesn't have a damn thing to do with Firefox and Chrome gaining ground over Internet Explorer. In fact the fast release schedule has blatantly hurt Firefox gaining ground over Internet Explorer as enterprise after enterprise has blatantly refused to distribute Firefox until they pull their head out of their ass on their release schedule. This causes a logistical support nightmare and the idea that this is going to /increase/ exposure through peoples works places is nonsensical. Firefox, go back rapidly releasing patches, instead of new versions, got it?
Internet Explorer losing ground has everything to do with two things. Experience and exposure.
When you use another browser you have a better experience because you can use things like Ad Block Plus or Flash Block to prevent your computer from being taken over by ads. You can use plugins to customize your experience for any number of other things in ways that you like. Internet Explorer simply doesn't support extensions that let the user improve their experience. You, the user, remain in /much/ greater control and as a result have a much better experience.
As for exposure that is an inevitable result of people being exposed to additional browsers through things like the browser choice menu in the European versions of Window and through smart phones. People are no longer in the position of having a browser monopoly and being quite so limited to a single default browser.
IE has always identified itself as Mozilla, i believe the current versions still identify themselves as mozilla/4.0 (ie netscape 4).
http://spamdecoy.net - free throwaway anonymous email - avoid spam!
it's not like you don't have to check with Chrome or Firefox if it supports the features you want to use, that's with every browser..
If it's the user agent string and not the updated browser functionality that breaks the "business app" then why bother to use the user agent string at all? The companies I've worked for have always stuck with the oldest version of IE they can get away with and if you managed to somehow get admin rights and update IE, the app will load but not work. User agent strings should not matter in a professional, managed software environment so I fail to see how a new string in a new browser that corporate isn't going to deploy anyway will break anything.
This is why I don't develop for IE at all. I need a web platform that doesn't break CSS and HTML code. If Microsoft wants to change the string from MSIE to IE then they better have finally fixed CSS and HTML handling. If they have I'm more then happy to support IE as part of my web platform, if not then I'll just have to put an update to block this new IE 11.
Didn't we all stop doing user agent detection a decade ago? Any web page that still relies on UA string is just doing it wrong. If it weren't for browser stats, I'd say all UA strings should be set to blank to enforce proper feature detection.
Just looked at IE10... It shows Mozilla as well. Nothing new here.
It was working. The update breaks it, therefore the update is broken. That's how people explain it, EVEN if it was broken to begin with.
custom CSS is not hell you fucking whiny douche-nozzle
During my Privoxy experimental years i tried life without sending any HTTP User Agent header.
It mostly worked fine. Some pages looked wierd. And a few pages refused, and barfed errors;
"Danger! Danger! Server is confused. Evil user for sure."
The only way to end these endless UA detection games is to NOT play.
There will be some rough sailing for some years. But once we've crossed that problem,
the benefits makes it worth it.
I have a special printing page where the text is rotated 90 degrees. All "good" browsers look like this:
-o-transform(-90deg)
-moz-transform(-90deg)
etc.
And they all work. IE uses an image generated on the server. Well come IE10, MS took away the IE conditionals (!--[IF IE 10]) and I was forced to do something to fix this. I added -ms-transform(-90deg) and found the DIV rotated, but not the text inside the div. Who is right? I am inclined to believe MS is WRONG but I haven't looked at the specs. Adding insult to injury, MS touted that you could now use transform instead of -ms-transform. GRRRR.
Hopefully, the managers and developers who thought that tying their business processes to a specific version of Internet Explorer was a good idea cause such incredible expenses to their companies that they get fired for being the incompetent idiots that they are.
Firefox has been doing a pretty good job of impersonating bloated IE for the last few years.
I haven't thought of anything clever to put here, but then again most of you haven't either.
Any app that still depends on an ancient, deprecated version of MSIE should be sunsetted. Developing new, modern replacements for those apps is exactly the kind of capital investment that companies have been putting off since 2002. It is long overdue, and it is the kind of investment that will actually get the economy growing at a much better pace. Good riddance to old cruft.
Back when Netscape ruled the Web and Microsoft still didn't 'get' the Internet, they (Microsoft) had to impersonate a Netscape identity to keep web sites from rejecting it. Looks like we've come full circle.
Have gnu, will travel.
Hark the word of Andersen the UA string chronicler!
Jay verily, thine blog hath shone a bright light upon this string's murky history.
To be, or not to be: isn't that quite logical, Slashdot Beta?
Finally, the comment slider on these comment pages actually works when using the new User Agent (as far back as IE 9!). Hey Slashdot, hire someone who knows how to code for the web and stop serving up crap that's not necessary.
When big companies stop supporting native IE [1] it means that Microsoft already lost the battle. It's funny how things have changed during 10 years.
[1] For example: http://www.cisco.com/en/US/docs/net_mgmt/prime/infrastructure/1.3/release/notes/cpi_rn_13.html#wp75302
If IE 10+ is actually standards complient, what will break if it's "Firefox impersonation" causes web sites to treat it as if were standards complient?
I really don't see the problem here. Those antique versions of IE from the last century will still identify the same way, so the web sites designed to cater to crufty old browsers from the previous century won't treat them any differently than they do now.
The obvious potential problem would be that if Microsoft went back to do their old trick of making up their own standards incompatible with everyone else, then web pages wouldn't work with the new browser. But I think the web environment has changed enough that if they were to do that, the rest of the world wouldn't go along with it. I suspect the folks at Microsoft are aware that such a move would accelerate the switch to Firefox, Chrome, etc.
Just provide them with a direct link to a non-shitty browser
That would be useful if you can answer these questions: How are you going to do that when you don't even know whether the user is running Windows, Mac OS X, GNU/Linux, or Android because you haven't looked at the user agent? You could put up a form where the user clicks the logo of the operating system, but given the fact that people fall for the "I'm calling from Windows" telemarketing scam, I'd imagine that a lot of inexperienced computer users don't even know which operating system their computer runs. Besides, how do you propose to treat users who aren't the owner of the machine that they're using, such as users of a machine owned by a business, school, library, or head of household? And how do you propose to treat users of iOS or a game console, where even the owner of a device lacks privileges to install software through "a direct link" and the manufacturer refuses to provide browsers using competing rendering engines on its app store?
It also presumes they can move browser; less of an issue with Safari
I'm not a paid member of the iOS developer program and therefore not privy to the latest version of the iOS App Store Review Guidelines, but an older leaked version states that no rendering engine other than that of Safari is permitted on iPod touch, iPhone, or iPad devices.
Doesn't seem that long ago people were coming up extensions so that Firefox, and other browsers, could masquerade as IE...
But the server was set up so that even a completely dumb client with no Javascript support was still supported.
Couldn't you have sent the JavaScript anyway and had it disable itself using object detection if the DOM objects not needed for client-side validation were not present?
They should be programatically testing the features they need and avoid what the browser engine is as much as possible.
How do you "programmatically test features" when JavaScript is turned off? For example, you might want to send a less detailed page to users of mobile phones but then test the screen size and retrieve more detailed information if the screen is larger. But when JavaScript is off, your script won't run and thus won't have a chance to retrieve the more detailed information and add it to the DOM.
And how do you programmatically test for cookies? There are some features that you might not want to enable for a bot that doesn't support cookies, such as history of recently viewed product pages on an e-commerce site. If you don't detect the bots through User-agent, you end up with a separate anonymous session in your session table for each page view.
Internet Explorer simply doesn't support extensions that let the user improve their experience.
How not? I thought IE had plenty of add-ons. For example, Google Chrome Frame is an IE add-on, a "browser helper object" to be specific. Or do you complain that the API that IE exposes to add-ons is incomplete in some way?
As for exposure that is an inevitable result of people being exposed to additional browsers through things like the browser choice menu in the European versions of Window
"Window 8" is an apt name for Windows 8 thanks to the all maximized all the time policy that Microsoft imposes on "immersive" (formerly Metro) applications.
and through smart phones. People are no longer in the position of having a browser monopoly
"Browser monopoly? In my smartphone?" It's more likely than you think. Or since when did Apple start allowing HTML rendering engines other than that of Safari on the iPhone or iPad?
What sort of CSS/HTML issues are you having with new versions of IE?
For one thing, the inability to install them on the versions of Windows that came with old, paid-for computers. IE 9 or later excludes Windows XP, and IE 10 or later excludes Windows Vista.
For another, by "new versions of IE", plural, do you mean IE 9 and 10 (new released versions) or IE 10 and 11 (latest release and a leaked pre-release)? If the former, than IE 9 still doesn't support File API, explicit caching of offline portions of web applications, IndexedDB, Page Visibility API, requestAnimationFrame, efficient numeric arrays, CSS3 multiple column layout, form input placeholders, or several HTML5 form input types. Even IE 10 doesn't support WebGL, cross-document messaging between tabs or Windows, or getUserMedia. (Source: caniuse.com)
How hard is it to pick up a tablet or phone
To test on an Android 2.3 phone, an Android 4 phone, an Android tablet, an iPhone, and an iPad, it's well over a thousand dollars hard, plus the cost of the cellular voice and data plans for the phones. This can become cost prohibitive for a student, hobbyist, or anyone else who doesn't develop a web site as his full-time job.
It's the 21st century more people are likely to browser your website on a mobile device then a desktop
Even if the desktop PC market share is declining, I thought laptops acted more like desktop PCs than like tablets or phones in this respect.
My Nexus 10 has more pixels then MOST desktop workstations
But it still has the same number of physical inches as a 1024x600 pixel netbook. How should the server know whether to send a high or low resolution image if JavaScript is off?