Подтвердить что ты не робот

Может ли веб-сайт узнать, запущен ли пользовательский указатель?

Может ли, например, Facebook.com запустить контроль версий script в моем браузере и выяснить, запущен ли измененный код HTML с помощью script?

Может ли быть сделано с помощью script, который может читать HTML-код в кеше и создавать какой-то хэш-тег, который отправляется обратно на сервер и сравнивается с кодом, который был отправлен клиенту?

4b9b3361

Ответ 1

Да, теоретически, сайт может выводить наличие скриптов в различных ситуациях.

Это не является надежным и обычно является слишком сложной проблемой для незначительной "угрозы" для сайта. (Опять же, некоторые веб-мастера могут быть обсессивно-параноиками о таких вещах.))

Некоторые методы, в зависимости от того, что делает script (в определенном порядке):

  • Игровые или аукционные сайты могут отслеживать время (скорость и регулярность) кликов "ставок".

  • Сайт может AJAX-обратно подсчитать, скажите, <script> узлы, ищите дополнительные функции.

  • Аналогично, сайт может AJAX-обращать любое или все содержимое страницы и сравнивать это с ожидаемыми значениями.

  • Дополнительные вызовы AJAX или вызовы AJAX, которые не удовлетворяют скрытым требованиям, могут быть отмечены (и разрешены к успеху).

  • Если script использует unsafeWindow только правильным (неправильным) способом, страница может обнаружить это и даже захватить (слегка ) повышенные привилегии.

  • "Клики", которые не были связаны с событиями мыши, могут быть обнаружены. Я на самом деле видел это в дикой природе.

  • JavaScript-страница часто обнаруживает script -генерированные клики (и т.д.) как отличающиеся от пользовательских. (Спасибо, c69, для напоминания.)

В конечном счете, преимущество заключается в писателе-писателе. Любые контрмеры, которые принимает веб-страница, могут быть обнаружены и помешаны в конце пользователя. Даже пользовательские, необходимые плагины или необходимые аппаратные ключи могут быть подорваны квалифицированными и мотивированными пользователями.

Ответ 2

Обновление. Нижеприведенные методы полностью неэффективны по сравнению с Greasemonkey 3.3.



См. (Мертвая ссылка) Как обнаружить Greasemonkey

>

Javascript, чтобы определить, установлен ли GM (но не работает ли script на этой странице):

Устаревший вариант 1:

if (Components.interfaces.gmIGreasemonkeyService) {
  alert("I smell a monkey!");
}


Устаревший вариант 2:

<script type="text/javascript" src="resource://greasemonkey/addons4.js"></script>
<script type="text/javascript">
if (typeof GM_addonsStartup !== "undefined") {
  alert("I smell a monkey!");
}
</script>