Добавить в версию 5.17.0.0 эмуляцию JS Features

YrKa

Client
Регистрация
20.04.2015
Сообщения
220
Благодарностей
112
Баллы
43
Есть вот такой скрипт https://valve.github.io/fingerprintjs2/, который использует библиотеку eslint для детекта браузеров.
попробуйте потестировать с не Firefox, и он даст параметр
has_lied_browser = true

За этот детект отвечает скорее всего следующий код
Код:
// eslint-disable-next-line no-eval
  var tempRes = eval.toString().length
  if (tempRes === 37 && browser !== 'Safari' && browser !== 'Firefox' && browser !== 'Other') {
  return true
  } else if (tempRes === 39 && browser !== 'Internet Explorer' && browser !== 'Other') {
  return true
  } else if (tempRes === 33 && browser !== 'Chrome' && browser !== 'Opera' && browser !== 'Other') {
  return true
  }

или вот этот 

  // We create an error to see how it is handled
  var errFirefox
  try {
  // eslint-disable-next-line no-throw-literal
  throw 'a'
  } catch (err) {
  try {
  err.toSource()
  errFirefox = true
  } catch (errOfErr) {
  errFirefox = false
  }
  }
  if (errFirefox && browser !== 'Firefox' && browser !== 'Other') {
  return true
  }
  return false
  },
но т.к. в новой версии toString().length должен работать, то детект происходит за счет обработки ошибки.

Просьба добавить данную фичу в следующее обновление.
 
  • Спасибо
Реакции: Lord_Alfred

Lord_Alfred

Client
Регистрация
09.10.2015
Сообщения
3 916
Благодарностей
3 867
Баллы
113
Я думаю, кроме форума - лучше через support.zennolab.com оповестить об этом разработчиков)
 
  • Спасибо
Реакции: YrKa

Vass

Client
Регистрация
03.02.2014
Сообщения
79
Благодарностей
10
Баллы
8
А как то самостояльно даную фичу сейчас можно в шаблон засунуть? скажем через тот же C#
 

YrKa

Client
Регистрация
20.04.2015
Сообщения
220
Благодарностей
112
Баллы
43
Последнее редактирование:

adminx

Client
Регистрация
24.03.2018
Сообщения
23
Благодарностей
4
Баллы
3

Adigen

Client
Регистрация
28.07.2014
Сообщения
825
Благодарностей
653
Баллы
93
Есть вот такой скрипт https://valve.github.io/fingerprintjs2/, который использует библиотеку eslint для детекта браузеров.
попробуйте потестировать с не Firefox, и он даст параметр
has_lied_browser = true

За этот детект отвечает скорее всего следующий код
Код:
// eslint-disable-next-line no-eval
  var tempRes = eval.toString().length
  if (tempRes === 37 && browser !== 'Safari' && browser !== 'Firefox' && browser !== 'Other') {
  return true
  } else if (tempRes === 39 && browser !== 'Internet Explorer' && browser !== 'Other') {
  return true
  } else if (tempRes === 33 && browser !== 'Chrome' && browser !== 'Opera' && browser !== 'Other') {
  return true
  }

или вот этот

  // We create an error to see how it is handled
  var errFirefox
  try {
  // eslint-disable-next-line no-throw-literal
  throw 'a'
  } catch (err) {
  try {
  err.toSource()
  errFirefox = true
  } catch (errOfErr) {
  errFirefox = false
  }
  }
  if (errFirefox && browser !== 'Firefox' && browser !== 'Other') {
  return true
  }
  return false
  },
но т.к. в новой версии toString().length должен работать, то детект происходит за счет обработки ошибки.

Просьба добавить данную фичу в следующее обновление.
Выполняем вот такую строчку в js:
JavaScript:
String.prototype.toSource = void 0;
И больше мы не файрфокс, по данной проверке ))

P.S. Евал, если нет доп проверок, можно вылечить вот так:
JavaScript:
eval.toString = function(){return "function eval() { [native code] }"};
 
Последнее редактирование:

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)