Re: Mozilla user agent escapes detection

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Sep 2, 2008 at 5:49 PM, Jochem Maas <jochem@xxxxxxxxxxxxx> wrote:

> Shawn McKenzie schreef:
>
>> Jochem Maas wrote:
>>
>>> Dave M G schreef:
>>>
>>>> PHP List,
>>>>
>>>> I have a script, part of which is taken from a script I found on the
>>>> 'net, which tries to detect the user agent of the browser accessing the
>>>> site. One of the reasons I'm doing this is to find out if the browser is a
>>>> desktop or mobile.
>>>>
>>>> Part of the code looks like this:
>>>>
>>>> $ua = strtolower($_SERVER['HTTP_USER_AGENT']);
>>>> $isDesktop = (strpos($ua, 'firefox') !== false)
>>>> || (strpos($ua,'mosaic') !== false)
>>>> || (strpos($ua,'msie') !== false)
>>>> || (strpos($ua,'opera') !== false)
>>>> || (strpos($ua,'mozilla') !== false)
>>>> || (strpos($ua,'w3c_css_validator') !== false)
>>>> || (strpos($ua,'w3c_validator') !== false);
>>>>
>>>> What's driving me crazy is that it successfully determines all the
>>>> browsers listed there, *except* mozilla.
>>>>
>>>
>>> Mozilla !== mozilla
>>>
>>
>> Look at the code: strtolower('Mozilla') === 'mozilla'
>>
>
> oh crap :-)
>
>
>
>> -Shawn
>>
>>>
>>> stripos is the case-insenstive version of strpos
>>>
>>>
>>>> I have a log file which alerts me when an unknown browser comes through
>>>> my site, and it's chock full of messages telling me that a Mozilla based
>>>> browser has come by. There are a *lot* of Mozilla based browsers.
>>>>
>>>> Some examples from my logs of the browsers slipping by my test:
>>>>
>>>> HTTP_USER_AGENT: Mozilla/5.0 compatible; Yahoo! Slurp
>>>> HTTP_USER_AGENT: Mozilla/5.0 compatible; Googlebot/2.1
>>>>
>>>
>>> these 2 are bots btw.
>>>
>>>  HTTP_USER_AGENT: Mozilla/5.0 X11; U; Linux i686
>>>>
>>>> In each case, the strpos() should have seen the mozilla agent and not
>>>> bothered logging it.
>>>>
>>>> It's not complicated code, especially considering it's successfully
>>>> finding msie and firefox.
>>>>
>>>> I can't imagine why Mozilla would be different.
>>>>
>>>> Any suggestions? Is there something about my code right in front of my
>>>> face that I'm not seeing?
>>>>
>>>> Any suggestions would be greatly appreciated.
>>>>
>>>
>>> STW? plenty of people offering code that attempts to detect mobile
>>> devices, e.g.:
>>>
>>> http://www.andymoore.info/php-to-detect-mobile-phones/
>>>
>>> also I'd offer a link in the top of your site pointing to the mobile site
>>> (and vice-versa) in order to:
>>>
>>> 1. allow bots to visit both.
>>> 2. in case your code guessed incorrectly for some user(s)
>>>
>>> I'd also check the UA string specifically for bots first and just let
>>> them
>>> through ... they are neither desktop nor mobile browsers.
>>>
>>> additionally you might consider how you want to accomodate text browsers
>>> (which is kind of what a bot is)
>>>
>>>
>>>> Thanks.
>>>>
>>>>
>>>
>>
>
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>
> Anyway, this code is working...
I changed my useragent in Firefox and it worked pretty well to me...


-- 
Thanks for your attention,

Diogo Neves
Web Developer @ SAPO.pt by PrimeIT.pt

[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux