Как определить, просматривает ли посетитель сайт через Citrix XenApp?

Наш клиент имеет эту маленькую локальную сеть с терминалами приема, где они транслируют Chrome веб-браузер через Citrix XenApp, Зачем? Я не знаю. И это странно, но этот тандем, похоже, портит данные, которые они отправляют на наших сайтах. Некоторые вещи, которые физически не могут быть кэшированы — кэшируются где-то в этом XenApp вещь.

Это очень важная ошибка для нас, потому что мы управляем обработкой платежей, и она хранит конфиденциальные данные держателей карт, которые также совместимы с PCI DDS!

Мы сказали им устанавливать обычные браузеры Chrome на конечные машины, и они говорят, что сделали. Но на следующий день — такая же проблема случается. Тогда они говорят:о, это была одна из старых машин с Citrix XenApp снова.Мех! Теперь, может быть, проходит неделя, и мы снова получаем ту же проблему, но они утверждают, что не используют XenApp больше это обычный локальный Chrome.

Я не верю им. Но как мы можем доказать их неправоту?

TL; DR: возможно ли определить, если:

  1. Посетитель сайта использовал обычный локальный браузер Chrome или
  2. Посетил в браузере Chrome Citrix XenApp?

Вот пример USER_AGENT мы получаем:

Mozilla / 5.0 (Windows NT 6.1; WOW64) AppleWebKit / 537.36 (KHTML, например
Gecko) Chrome / 39.0.2171.99 Safari / 537.36

Это похоже на совершенно нормальную сборку Chrome. Попытался просмотреть заголовки HTTP, и там нет ничего особенного.

Есть ли способ определить это даже теоретически?

  1. Наш стек приложений LAMPТаким образом, тег PHP.
  2. Пожалуйста, не предполагайте, что это наша программная ошибка. У нас есть сотни клиентов, миллионы транзакций, и такая ситуация происходит только с этим Citrix XenApp сумасшедший клиент

РЕДАКТИРОВАТЬ: это не дубликат! Здесь я говорю о веб-сайте, работающем в браузере, и сценариях на стороне сервера. Не о приложении для Windows с API и DLL

3

Решение

Короткий ответ: вы действительно не можете .. XenApp, для всех намерений и целей, является удаленным рабочим столом. Фактически, в какой-то момент Microsoft RDP и Citrix имели одинаковую кодовую базу, лицензированную взад и вперед.

Более длинный ответ: когда вы запускаете Chrome через XenApp, Chrome фактически запускается на сервере. Затем изображение захватывается, перенаправляется и передается клиенту через ICA. Причина, по которой вы не можете определить с помощью заголовков или HTTP-трафика в целом, работает ли пользователь XenApp, заключается в том, что это из Chrome<-> Перспектива веб-сервера (или любого другого приложения), на самом деле ничего не меняется. Единственная дельта в том, где пользовательский интерфейс отображается.

Одна вещь, которую я должен упомянуть, это то, что если кто-то запускает XenApp в крупномасштабной установке, у него, вероятно, есть несколько NetScalers. Если это так, то они могут выполнять все виды странного HTTP-кэширования, поэтому вы можете искать неправильное место для объяснения ваших проблем с кэшированием.

3

Другие решения

Лично я не знаком с Citrix XenApp, но взяты отсюда http://www.citrix.com/products/xenapp/how-it-works/application-virtualization.html Так работает Citrix XenApp.

Понимание виртуализации приложений
Технология виртуализации приложений Citrix изолирует приложения от базовой операционной системы и других приложений для повышения совместимости и управляемости. Как современное решение для доставки приложений, XenApp виртуализирует приложения с помощью интегрированной технологии потоковой передачи и изоляции приложений. Эта технология виртуализации приложений позволяет передавать приложения из централизованного местоположения в изолированную среду на целевом устройстве, где они будут выполняться. С XenApp приложения не устанавливаются в традиционном смысле. Файлы приложения, конфигурация и параметры копируются на целевое устройство, а выполнение приложения во время выполнения контролируется уровнем виртуализации приложения. При выполнении приложение во время выполнения полагает, что оно взаимодействует напрямую с операционной системой, тогда как фактически оно взаимодействует со средой виртуализации, которая передает все запросы операционной системе.
XenApp уникален тем, что представляет собой законченную систему доставки виртуальных приложений, предлагая как онлайновый, так и автономный доступ к приложениям посредством комбинации хостинга приложений и потоковой передачи приложений непосредственно на пользовательские устройства. Когда пользователи запрашивают приложение, XenApp определяет, совместимо ли их устройство и может ли оно запускать данное приложение. Минимальные требования к целевому устройству — совместимая операционная система Windows® и соответствующее клиентское программное обеспечение Citrix. Если пользовательское устройство удовлетворяет минимальным требованиям, XenApp запускает виртуализацию приложений посредством потоковой передачи приложений непосредственно в изолированную среду на пользовательском устройстве. Если пользовательское устройство не может запускать определенное приложение, XenApp запускает виртуализацию сеанса.

Запрет кеширования в вашем файле htaccess.

Header set Cache-Control "private, max-age=0, no-cache, no-store, must-revalidate" env=NO_CACHE

Если вы хотите предотвратить кэширование на определенных типах файлов, попробуйте, например:

  <FilesMatch "\.(pl|php|cgi|spl|scgi|fcgi)$">
Header set Cache-Control "private, max-age=0, no-cache, no-store, must-revalidate" env=NO_CACHE
</FilesMatch>
1

Проверьте наличие определенных заголовков HTTP для Citrix:

  • X-Citrix-Gateway
  • X-Citrix-Via

и заголовок прокси:

  • X-Forwarded-For

и специальные файлы cookie Citrix:

  • WIUser=
  • WINGDevice=
  • WINGSession=
  • WIClientInfo=

и определенные ошибки SSL Citrix:

  • Ошибка SSL 61
  • Ошибка SSL 75
  • Ошибка SSL 74

Рекомендации

1

Вы можете обнаружить их, используя их IP-адрес, возможно.
Если они будут использовать XenApp, их IP будет отличаться от локальной сети.

0