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

时间:2012-03-10 18:37:31

标签: php mobile user-agent

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

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

3 个答案:

答案 0 :(得分:3)

您可以使用下一个变量:

$_SERVER['HTTP_USER_AGENT']

是:

  

这是一个字符串,表示正在访问的用户代理   页

你可以像这样使用它:

if( strstr($_SERVER['HTTP_USER_AGENT'],'Android') ) //Android
{

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

}
else
{

}

答案 1 :(得分:1)

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

User-Agent string仅标识您正在使用的浏览器的类型,版本和详细信息。由于数千或数百万人可能正在使用这种完全相同的浏览器,因此它并不是唯一的,因此对于安全授权令牌来说是一个非常糟糕的选择。

例如,Samsung Galaxy S3的用户代理字符串是:

  

Mozilla / 5.0(Linux; U; Android 4.0.4; en-gb; GT-I9300 Build / IMM76D)   AppleWebKit / 534.30(KHTML,与Gecko一样)Version / 4.0 Mobile   Safari浏览器/ 534.30

这描述了浏览器的构建信息和兼容性,但仅对安装在数千或数百万台设备上的构建而言是唯一的。

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

如果您要保护需要真正安全保障的网站,我建议您不要尝试“推出自己的”身份验证方案,除非您是安全专家。我建议使用安全框架,例如OWASP's ESAPI或其他经过良好测试的框架。在构建身份验证系统时,有很多方法可以解决问题,因此最好在将其部署到生产环境之前使用经过全面测试的方法。

答案 2 :(得分:0)

我在几个项目中使用了this。它可能会因您的需求而过于膨胀,但您可以排除浏览器检测不需要的功能。

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