从用户代理获取用户操作系统是否可靠?

时间:2016-10-03 06:15:41

标签: php parsing operating-system user-agent

所以目前在我的网站上,我在注册帐户时记录用户OS。然后他们可以在“帐户页面”上查看(注册时记录的OS)。

但我的问题是,让用户OS解析PHP中的useragent是否可靠?例如,我通过php中的useragent获取用户$_SERVER['HTTP_USER_AGENT'],然后解析它以从OS中提取useragent。我可以依赖合法用户准确吗?

我真的不在乎黑客是否可以欺骗useragent,所有我真的想知道的是,这个($_SERVER['HTTP_USER_AGENT'])是否会让用户准确OS来自合法(非)黑客)网站访问者?

4 个答案:

答案 0 :(得分:1)

你似乎在问这个领域是否可靠,是否可靠?嗯,是的,你可以;当它可靠时,它是可靠的。

但这些时间很少见。你不需要成为欺骗用户代理的“黑客”。如果请求是脚本化的,则可以使用简单的浏览器扩展,或在wgetcurl命令中添加一个额外的参数。

用户代理是100%易错的,你不应该依赖它来做任何有用的事情。

答案 1 :(得分:0)

是的,对非黑客用户来说是可靠的。

更多说明

用户代理字符串是浏览器自身发送给网络服务器以识别自身的文本,因此网站可以根据浏览器或基于浏览器兼容性发送不同的内容。

Mozilla是一个浏览器渲染引擎(Firefox的核心)以及Chrome和IE包含字符串Mozilla / 4或/ 5的事实表明它们与该渲染引擎兼容。

您还可以使用php的get_browser()功能。

答案 2 :(得分:0)

大部分时间它非常可靠,因为大多数人都不会为改变这些信息而烦恼。因此,将它用于纯粹的二级和易用性功能就可以了 特别是在这些情况下,您可以使用它来填写“默认”值。如果错误,用户可以选择更改。

但是,由于可以可以由任何对HTTP和/或Web浏览器有所了解的人进行更改/欺骗,因此您不得依赖它来处理与安全相关的任何事情。甚至有很多浏览器,它们会让用户随意更改其用户代理字符串 这包括使用用户代理字符串来尝试识别用户。因为复制标题并欺骗自己很容易。

使用SSL会略微增加难度。但是,为了从您的用户(或管理员)获取所有标头,攻击者所需要的只是将您网站上的链接发布到他自己的服务器上。之后,他可以随心所欲地做任何他想做的事。

答案 3 :(得分:0)

如果要使UI更加友好。可以说:“用户使用Chromer吗?”然后给他看一些有用的信息。然后其100%可靠且非常有用。我不在乎我的UI对黑客有多友好。

例如,在某些情况下...让我们说,由于某种原因,您想阻止除Chrome所有者以外的每个人,..您不能依靠它。