Фингерпринтинг Фингерпринтинг для различения ПО: — Нужен для определения клиента как ПО, взаимодействующего с сервисом; — Необязательно составной; каждому клиенту допустимо иметь несколько фингерпринтов. Фингерпринтинг для идентификации пользователя: — Нужен для определения клиента как человека; — Может быть составным: несколько фингерпринтов объединяются в глобальный идентификатор; — Имеет «вирусную» природу.
JavaScript: Font Fingerprin:ng The quick brown fox jumps over the lazy dog The quick brown fox jumps over the lazy dog The quick brown fox jumps over the lazy dog The quick brown fox jumps over the lazy dog The quick brown fox jumps over the lazy dog The quick brown fox jumps over the lazy dog The quick brown fox jumps over the lazy dog The quick brown fox jumps over the lazy dog The quick brown fox jumps over the lazy dog The quick brown fox jumps over the lazy dog The quick brown fox jumps over the lazy dog The quick brown fox jumps over the lazy dog The quick brown fox jumps over the lazy dog The quick brown fox jumps over the lazy dog 5IFRVJDLCSPXOGPYKVNQTPWFSUIFMB[ZEPH The quick brown fox jumps over the lazy dog The quick brown fox jumps over the lazy dog The quick brown fox jumps over the lazy dog
HTTP def header_fingerprint(headers): fingerprint = hashlib.sha1() for name, value in headers: if (consider_value := header_types.get(name)) is not None: fingerprint.update("\x00" + name) if consider_value: fingerprint.update("\x01" + value) return fingerprint.digest()