Dealing with masked Useragents

Questions about our enterprise "in the network" WURFL components

Dealing with masked Useragents

Postby Mobi-Force » Tue May 12, 2015 6:05 am

I'm hoping that someone can help. We are an existing InFuze business customer and we are having trouble with request being incorrectly identified either due to masking or simply unrecognised devices. At present 15% of lookup's result in either a blank response or a "Generic" device.

As such I have a few questions

Masked Useragents
What is the best way to deal with masked useragents when using the Nginx Module (and Apache for that matter)?

We have a problem where if the true Useragent is being masked, for example by the Opera Browser or the UC Browser, that all of the device information relates to the masking useragent and not the real useragent

Example:
When the UCBrowser is used the HTTP_USER_AGENT header will be set to something like 'UCWEB/2.0 (MIDP-2.0; U; Adr 4.4.4; en-US; SM-G530H) U2/1.0.0 UCBrowser/9.0.2.389 U2/1.0.0 Mobile'

The browser will create the X-header of HTTP_X_UCBROWSER_DEVICE_UA which it will set to the real useragent, E.G. 'Mozilla/5.0 (Linux; U; Android 4.4.4; en-US; SM-G530H Build/KTU84P) AppleWebKit/528.5+ (KHTML, like Gecko) Version/3.1.2 Mobile Safari/525.20.1'

The InFuze library will detect based on the UCWEB user agent and will return *blank* for the device. See http://bit.ly/1QEZ9hB for an example (this link passed the useragent)

Where as the actual device is a Samsung SM-G530H (Galaxy Grand Prime) and can be correctly identified by the masked useragent. See
http://bit.ly/1QEZhxq

Obviously not all of the true useragents are identified by InFuze (in our case roughly 15% can not be identified). An example is http://bit.ly/1FaPZp4 which is the Micromax A106 device using the Useragent Mozilla/5.0 (Linux; U; Android 4.4.2; en-US; Micromax_A106 Build/KOT49H) AppleWebKit/528.5+ (KHTML, like Gecko) Version/3.1.2 Mobile Safari/525.20.1.

We are currently running from inFuze 1.5.1

At the moment I can work around if we stopped using InFuze to use WURLFDB as I am unmasking the useragents and could then request the lookup be performed against the true useragent.

The headers that tend to store the real useragents are:

Opera Mini - HTTP_X_OPERAMINI_PHONE_UA
Opera Mini (legacy) - HTTP_X_OPERAMINI_FEATURES
Opera Mobile - HTTP_DEVICE_STOCK_UA
SkyFire Browser - HTTP_X_SKYFIRE_PHONE
Bolt Browser - HTTP_X_BOLT_PHONE_UA
UCBrowser - HTTP_X_UCBROWSER_DEVICE_UA
Common Browser Proxies - HTTP_X_ORIGINAL_USER_AGENT
Web Forms - HTTP_X_DEVICE_USER_AGENT

Ideally I would like to be able to provider a list of alternative headers run the identification against those as well (or instead if additional ones are not possible)
Mobi-Force
 
Posts: 1
Joined: Tue May 12, 2015 5:42 am

Re: Dealing with masked Useragents

Postby Elliotfehr » Tue May 12, 2015 12:25 pm

Hello,

The latest version of the NGINX module (1.6) will detect the the masked User Agent as the device when setting the `wurfl_useragent_priority_override_sideloaded_browser_useragent;` in your NGINX configuration.

Several of the headers that you mentioned are already included in the logic of the API and we will be adding more in an upcoming update.

Thank you,

Elliot
Elliotfehr
 


Return to Varnish Cache, Apache, NGINX Modules and WURFL C++ API

Who is online

Users browsing this forum: No registered users and 1 guest

cron