2012-03-10 35 views
2

是否有可以从移动用户代理,将唯一标识设备被拉到任何信息?移动用户代理抓取详情

如果可能的话,我想用PHP,承认它创建的网页是我是从我的iPhone访问它。除此之外的其他声明不会显示任何内容。

回答

3

您可以使用下一个变量:

$_SERVER['HTTP_USER_AGENT'] 

是:

这表示该用户代理的被访问 页面

您可以将字符串使用这样的:

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

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

} 
else 
{ 

} 
0

我的一对夫妇的项目中使用this。它可能太臃肿,不适合您的需求,但您可以排除不需要的浏览器检测功能。

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

1

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

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

例如,对于三星Galaxy S3用户代理字符串是:

的Mozilla/5.0(Linux的; U;的Android 4.0.4;烯GB; GT-I9300构建/ IMM76D) 为AppleWebKit/534.30(KHTML,例如Gecko)版本/ 4.0移动Safari浏览器 /534.30

这说明浏览器的构建信息和兼容性,但独特之处在于它是安装在数千或数百万的设备的构建。

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

如果您要保护的网站需要真正的安全保证,我建议您不要尝试“推出自己的”认证计划,除非您是安全专家。我建议使用安全框架,如OWASP's ESAPI或另一个经过良好测试的框架。在构建身份验证系统时,有很多方法会导致错误,所以最好使用在部署到生产环境中之前已经过全面测试的方法。