Редактировать данные (в частности, отпечатки браузера) перед отправкой на сервер?
Я некоторое время изучал дактилоскопию в браузере и получил некоторые знания в этой области. Демонстрацию снятия отпечатков пальцев в браузере можно найти по адресу http://panopticlick.eff.org/. Однако меня беспокоит то, насколько легко ими можно манипулировать, или я так думаю. Из того, что я понимаю, есть 2 способа, которыми они могут манипулировать.
1. Управлять ими напрямую
Для изменения отпечатка пальца нужно просто подделать значения в браузере, которые собирают такие сценарии снятия отпечатков пальцев. Например, вы можете подделать:
a) Строки User-Agent среди других заголовков.
б) JS-Elements-and-API с помощью ObjectDefineProperty для редактирования их значений
c) Более специфические методы снятия отпечатков пальцев, такие как Canvas fingerprinting, путем установки расширения, которое управляет отпечатком
и так далее......
Этот метод, однако, не очень эффективен против активных методов дактилоскопии, таких как WebGL-дактилоскопия, поскольку они не могут быть легко подделаны.
Но второй метод немного более интересен, и, к сожалению, мало информации о том, правдоподобно это или нет.
2. Редактирование данных перед их отправкой на сервер
Таким образом, в основном, после того, как скрипт собрал всю информацию, он либо (я предполагаю здесь) создает хеш-код и отправляет его на сервер, либо отправляет данные на сервер, и там создается хеш-код. Теперь, если я полон решимости победить отпечатки пальцев браузера на определенном сайте, для злонамеренных целей все, что мне нужно сделать, это запустить приложение, такое как Fiddler, найти (предположительно) POST, через который данные отправляются на сервер, и отредактировать данные. Для тех, кто не знает, что такое Fiddler, это приложение, которое маршрутизирует все запросы и ответы, сделанные через вашу сеть, через прокси-сервер, так что вы можете просматривать и редактировать любые запросы, прежде чем отправлять их в браузер / сервер. Кажется, достаточно просто.
Мои вопросы
Теперь, поскольку я не обладаю достаточными знаниями по всем вопросам запроса-ответа, это заставляет меня усомниться в моем методе 2. Итак, наконец, я хочу спросить:
1) Верны ли мои знания о том, как отпечатки браузера отправляются на сервер? т.е. через POST. Я полагаю, что это должно быть потому, что это единственный способ, как вы можете передавать данные на сервер?
2) Если это возможно, то какие меры противодействия могут реализовывать (или реализовывать) сайты, чтобы убедиться, что данные не изменяются перед их отправкой на сервер, или, по крайней мере, усложнить для них быть сделано?
3) Есть ли верный способ поймать такие методы?