php – 如何检测网站访问者是否通过Citrix XenApp浏览网站?

我们的客户端拥有带接收终端的小型局域网,可通过Citrix XenApp流式传输Chrome网络浏览器.为什么?我不知道.这很奇怪,但是这个串联似乎破坏了他们在我们网站表单上提交的数据.一些物理上无法缓存的东西 – 在XenApp的某个地方缓存.

这对我们来说是一个非常重要的错误,因为我们管理支付处理并且正在兑现敏感的持卡人数据,这与非PCI DDS兼容!

我们告诉他们要将普通的Chrome浏览器安装到终端机器上,他们说他们做到了.但第二天 – 同样的问题发生了.然后他们说 – “哦,这又是Citrix XenApp的旧机器之一.”嗯!现在可能一周过去了,我们再次遇到同样的问题,但他们声称他们不再使用XenApp,这是一个普通的本地Chrome.

我不相信他们.但是我们怎么能证明他们错了呢?

TL; DR:是否可以检测是否:

>网站访问者使用普通的本地Chrome浏览器或
>通过Citrix XenApp流式传输的Chrome浏览器访问?

以下是我们获得的USER_AGENT示例:

Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like
Gecko) Chrome/39.0.2171.99 Safari/537.36

它看起来像一个完全正常的Chrome版本.试图通过HTTP标头查看,没有什么特别的.

有没有办法确定这个,甚至理论上?

>我们的应用程序堆栈是LAMP,因此是PHP标记.
>请不要暗示这是我们的软件错误.我们有数百个客户端,数百万个交易,这种情况只发生在Citrix XenApp疯狂客户端上.

编辑:这不是重复!在这里,我说的是在浏览器中运行的网站和服务器端脚本.不是关于具有API和DLL的Windows应用程序

解决方法:

简短回答:你真的不能……对于所有意图和目的,XenApp都是远程桌面.实际上,Microsoft RDP和Citrix在某一时刻是来回授权的相同代码库.

更长的答案:当您通过XenApp启动Chrome时,Chrome实际上是在服务器上启动的.然后,通过ICA捕获,重定向并流式传输到客户端.您无法判断用户是否正在运行XenApp的标头或HTTP流量的原因是,从Chrome< - > Webserver透视图(或任何应用程序),实际上没有任何改变.唯一的delta是UI呈现的位置.

我应该提到的一件事是,如果有人在大型安装中运行XenApp,他们可能会有一些netscalers.如果是这样,那些可以进行各种奇怪的HTTP缓存,所以你可能会在错误的地方寻找你的缓存问题的解释.

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...