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

Php 移动用户代理获取详细信息,php,mobile,user-agent,Php,Mobile,User Agent,是否有任何信息可以从移动用户代理中提取,以唯一标识设备 如果可能的话,我正在尝试用PHP创建一个页面,这样可以识别是我从iPhone访问它。后面的Else语句根本不会显示任何内容。您可以使用下一个变量: $_SERVER['HTTP_USER_AGENT'] 即: 这是一个字符串,表示正在访问 页面 您可以这样使用它: if( strstr($_SERVER['HTTP_USER_AGENT'],'Android') ) //Android { } elseif( strstr($_SERV

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


如果可能的话,我正在尝试用PHP创建一个页面,这样可以识别是我从iPhone访问它。后面的Else语句根本不会显示任何内容。

您可以使用下一个变量:

$_SERVER['HTTP_USER_AGENT']
即:

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

您可以这样使用它:

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

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

}
else
{

}

您可以使用下一个变量:

$_SERVER['HTTP_USER_AGENT']
即:

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

您可以这样使用它:

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

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

}
else
{

}
我在几个项目上使用过。它可能过于臃肿,无法满足您的需要,但您可以排除不需要的浏览器检测功能

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

我在几个项目中使用过。它可能过于臃肿,无法满足您的需要,但您可以排除不需要的浏览器检测功能


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

如果您使用的是随手机附带的现成浏览器,则不可能仅根据用户代理字符串来唯一标识您的设备

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

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

Mozilla/5.0linux;U安卓4.0.4;en gb;GT-I9300构建/IMM76D AppleWebKit/534.30 KHTML,如Gecko版本/4.0 Mobile Safari/534.30

这描述了浏览器的构建信息和兼容性,但仅限于安装在数千或数百万设备上的构建

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


如果您要保护一个需要真正安全保证的站点,我建议您不要尝试使用自己的身份验证方案,除非您是安全专家。我建议使用安全框架,例如,或其他经过良好测试的框架。在构建身份验证系统时,有很多方法会出错,因此最好使用在将其部署到生产环境之前经过彻底测试的方法

如果您使用的是随手机附带的现成浏览器,则不可能仅基于用户代理字符串来唯一标识您的设备

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

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

Mozilla/5.0linux;U安卓4.0.4;en gb;GT-I9300构建/IMM76D AppleWebKit/534.30 KHTML,如Gecko版本/4.0 Mobile Safari/534.30

这描述了浏览器的构建信息和兼容性,但仅限于安装在数千或数百万设备上的构建

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

如果您要保护一个需要真正安全保证的站点,我建议您不要尝试使用自己的身份验证方案,除非您是安全专家。我建议使用安全框架,例如,或其他经过良好测试的框架。在构建身份验证系统时,有很多方法会出错,因此最好使用在将其部署到生产环境之前经过彻底测试的方法