我注意到Safari根据php中会话的状态提供了不同的用户代理。与服务器的第一个连接提供了如下的用户代理字符串:


  MobileSafari / 9537.53 CFNetwork / 672.1.13达尔文/14.0.0


但是,一旦会话开始,以后的任何连接都会给出:


  Mozilla / 5.0(iPad; CPU OS 7_1,例如Mac OS X)AppleWebKit / 537.51.2(KHTML,例如Gecko)_版本/7.0移动设备/ 11D167 Safari / 9537.53


到底是怎么回事?我正在将用户代理的哈希存储在会话包装器中,以试图限制帐户遭到破坏的损害。这是否意味着我将不得不取消该支票?

(我仅在iOS7和PHP上对此进行了测试)

最佳答案

MobileSafari/9537.53 CFNetwork/672.1.13 Darwin/14.0.0


CFNetwork用户代理只是移动浏览器的爬网程序。这将检索收藏夹或触摸图标。 CFNetwork请求取决于iOS或Mac OS X版本,第一个令牌仅标识APP。如果您想了解更多有关版本的信息,以下是有关iOS和Mac OS X CFNetwork版本的很好概述:http://user-agents.me/cfnetwork-version-list

所有其他请求都通过以下用户代理字符串发生:

Mozilla/5.0 (iPad; CPU OS 7_1 like Mac OS X) AppleWebKit/537.51.2 (KHTML, like Gecko)_Version/7.0 Mobile/11D167 Safari/9537.53


如果查看服务器日志,您会发现,每个.css,.html,.php,.jpg ...请求都与Mozilla用户代理字符串一起发生。

根据您的问题:忽略检查中的CFNetwork用户代理字符串。

07-27 17:31