移动用户代理获取详细信息


Mobile User Agent Fetch Details

是否有任何信息可以从移动用户代理中提取,以唯一标识设备?

如果可能的话,我正在尝试用PHP创建一个页面,它可以识别是我从iPhone访问它。否则,接下来的声明根本不会显示任何内容。

您可以使用下一个变量:

$_SERVER['HTTP_USER_AGENT']

即:

这是一个字符串,表示正在访问页面

你可以这样使用它:

if( strstr($_SERVER['HTTP_USER_AGENT'],'Android') ) //Android
{
}
elseif( strstr($_SERVER['HTTP_USER_AGENT'],'iPhone')) //iphone
{
}
else
{
}

如果您使用的是手机附带的"开箱即用"浏览器,则不可能仅根据用户代理字符串来唯一识别您的设备。

用户代理字符串仅标识您正在使用的浏览器的类型、版本和详细信息。由于成千上万或数百万人可能正在使用完全相同的浏览器,因此它不是唯一的,因此对于安全授权令牌来说是一个非常糟糕的选择。

例如,三星Galaxy S3的用户代理字符串为:

Mozilla/5.0(Linux;U;Android 4.0.4;en-gb;GT-I9300 Build/IMM76D)AppleWebKit/534.30(KHTML,类似Gecko)版本/4.0 MobileSafari/534.30

这描述了浏览器的内部版本信息和兼容性,但仅限于安装在数千或数百万台设备上的内部版本。

因为用户代理字符串没有什么真正独特的地方,所以我建议不要使用它来提供任何级别的安全性。至少我建议实现HTTP基本身份验证。使用HTTP基本身份验证时,请确保启用SSL,因为您的用户名和密码是以HTTP编码但未加密的方式发送的,很容易被拦截。

如果你正在保护一个需要真正安全保障的网站,我建议你不要尝试"推出自己的"身份验证方案,除非你是安全专家。我建议使用一个安全框架,比如OWASP的ESAPI,或者另一个测试良好的框架。在构建身份验证系统时,有一长串方法会出错,因此在将其部署到生产环境中之前,最好使用经过彻底测试的身份验证系统。

我在几个项目中使用了这个。对于您的需求来说,它可能过于臃肿,但您可以排除不需要的浏览器检测功能。

除了检测浏览器,它还检测版本。