Why iPhone treating Google Chrome as Safari also Mozilla Firefox as Safari browser?

Viewed 1323

I create a code that checks if the browser is accessible only on Google Chrome and limit Mozilla Firefox. For example, I use an Android phone I want to give access only using Google Chrome and if an iPhone or iPad Google Chrome have privileges to access the website. But when check if the browser is Chrome or Mozilla it treated as Safari. Using the C#, tools. So I investigate it if there's a unique property that is good to use but sadly none. Is there a good plugin or libraries or framework to detect an iphone or android browser. Thank you.

This is for Google Chrome.

var userAgent = filterContext.HttpContext.Request.UserAgent?.ToLowerInvariant() ?? "";
"mozilla/5.0 (iphone; cpu iphone os 9_1 like mac os x) applewebkit/601.1.46 (khtml, like gecko) version/9.0 mobile/13b143 safari/601.1"

var userBrowser = filterContext.HttpContext.Request.Browser.Browser?.ToLowerInvariant() ?? "";
"safari"

var userBrowserTypeype = filterContext.HttpContext.Request.Browser.Type;
"Safari9"

var userBrowserVersion = filterContext.HttpContext.Request.Browser.Version;
"9.0"

var userBrowserMajorVersion = filterContext.HttpContext.Request.Browser.MajorVersion;
"9"

var userBrowserMinorVersion = filterContext.HttpContext.Request.Browser.MinorVersion;
0

var userBrowserPlatform = filterContext.HttpContext.Request.Browser.Platform;
"Unknown"

var userBrowserBeta = filterContext.HttpContext.Request.Browser.Beta;
false

var userBrowserCrawler = filterContext.HttpContext.Request.Browser.Crawler;
false

var userAol = filterContext.HttpContext.Request.Browser.AOL;
false

var userBrowserWin16 = filterContext.HttpContext.Request.Browser.Win16;
false

var userBrowserWin32 = filterContext.HttpContext.Request.Browser.Win32;
false

var userBrowserFrames = filterContext.HttpContext.Request.Browser.Frames;
true

var usBrowserTables = filterContext.HttpContext.Request.Browser.Tables;
true 

var userBrowserCookies = filterContext.HttpContext.Request.Browser.Cookies;
true

var userBrowserVbScript = filterContext.HttpContext.Request.Browser.VBScript;
false

This is for Mozilla Firefox.

var userAgent = filterContext.HttpContext.Request.UserAgent?.ToLowerInvariant() ?? "";
"mozilla/5.0 (iphone; cpu iphone os 10_2_1 like mac os x) applewebkit/602.4.6 (khtml, like gecko) version/10.0 mobile/14d27 safari/602.1"

var userBrowser = filterContext.HttpContext.Request.Browser.Browser?.ToLowerInvariant() ?? "";
"safari"

var userBrowserTypeype = filterContext.HttpContext.Request.Browser.Type;
"Safari10"

var userBrowserVersion = filterContext.HttpContext.Request.Browser.Version;
"10.0"

var userBrowserMajorVersion = filterContext.HttpContext.Request.Browser.MajorVersion;
"10"

var userBrowserMinorVersion = filterContext.HttpContext.Request.Browser.MinorVersion;
0

var userBrowserPlatform = filterContext.HttpContext.Request.Browser.Platform;
"Unknown"

var userBrowserBeta = filterContext.HttpContext.Request.Browser.Beta;
false

var userBrowserCrawler = filterContext.HttpContext.Request.Browser.Crawler;
false

var userAol = filterContext.HttpContext.Request.Browser.AOL;
false

var userBrowserWin16 = filterContext.HttpContext.Request.Browser.Win16;
false

var userBrowserWin32 = filterContext.HttpContext.Request.Browser.Win32;
false

var userBrowserFrames = filterContext.HttpContext.Request.Browser.Frames;
true

var usBrowserTables = filterContext.HttpContext.Request.Browser.Tables;
true 

var userBrowserCookies = filterContext.HttpContext.Request.Browser.Cookies;
true

var userBrowserVbScript = filterContext.HttpContext.Request.Browser.VBScript;
false
1 Answers

That is probably due to that iOS does not allow other browser engines than Safari.

Sadly, this forces the Chrome app to use Safari's web browser component and user agent.

Read more about it here

Related