Я розумію, що сервер може дізнатися мою IP-адресу, місцезнаходження, інформацію про браузер та ОС. Про ОС ... Якщо я запускаю Linux, чи можливо сервер дізнатися, який дистрибутив Linux я використовую?
Я розумію, що сервер може дізнатися мою IP-адресу, місцезнаходження, інформацію про браузер та ОС. Про ОС ... Якщо я запускаю Linux, чи можливо сервер дізнатися, який дистрибутив Linux я використовую?
Відповіді:
Швидше за все. Натисніть це посилання, щоб побачити, що браузер надсилає на веб-сервер. ОС має бути включена до першої категорії під назвою "Агент користувача"
Ще один хороший сайт, який покаже вам, що веб-сайт може дізнатися про вашу систему під час відвідування сайту, є BrowserSpy.dk ; сайт електронного пограничного фонду (EFF), зазначений у відповіді Келтарі, використовує частину коду від BrowserSpy.dk. Якщо ви натиснете на браузер у меню ліворуч від домашньої сторінки, ви побачите інформацію щодо свого браузера. Коли я відвідую сторінку за допомогою Firefox в системі Ubuntu Linux, я бачу "Mozilla / 5.0 (X11; Ubuntu; Linux i686; rv: 24.0) Gecko / 201001 Firefox / 24.0)"
Існує кілька місць, у яких браузер може надсилати інформацію:
User-AgentHTTP-заголовок. Він є частиною специфікації HTTP, і кожен запит має один https://en.wikipedia.org/wiki/User_agent . Як ви бачите, є ім'я двигуна візуалізації, версія браузера та назва ОС. Використовуйте "панель інструментів розробника" або "firebug", щоб знайти список заголовків, які надсилає ваш браузер: /programming/4423061/view-http-headers-in-google-chrome
JavaScript: Navigatorу JavaScript є клас, він містить ім'я os та ім'я браузера: http://www.w3schools.com/js/js_window_navigator.asp . Деякі сайти можуть використовувати JS для виявлення цієї інформації та повернення її на сервер. Ви можете використовувати простий JS для перевіркиalert(navigator.appName); alert(navigator.platform);
Відбитка пальців стека TCP / IP: різні реалізації TCP / IP (сокети WinSock vs Berkley) та різні версії ОС мають дещо різні параметри за замовчуванням. Деякі евристики можуть бути використані для виявлення сімейства ОС. Такий підхід у стилі хакера використовується дуже рідко: https://en.wikipedia.org/wiki/TCP/IP_stack_fingerprinting
Сучасний JavaScript також може повідомити про свою позицію (наприклад, GPS) через API геолокації, але він завжди запитує, хочете ви надати цю інформацію Серверу чи ні: http://www.w3schools.com/html/html5_geolocation.asp
До речі, сервер не завжди може знайти ваш справжній IP. У разі проксі-сервера проксі може надсилати ваш реальний IP на сервер (за допомогою X-Real-IPабо X-Forwarded-Forзаголовків), але цього не потрібно. І навіть у вас немає публічного IP-адреси, якщо NAT налаштований на маршрутизаторі. У цьому випадку сервер знатиме лише загальну IP-адресу вашого маршрутизатора, і під одним імпульсним IP-адресою міг би бути весь офіс (кілька сотень людей).
Ваш рядок користувача-агент зазвичай надсилається на веб-сайт, який ви відвідуєте. Потім цей рядок UA розшифровується, і зазвичай його буде достатньо, щоб визначити деякі дуже основні відомості про вашу машину.
Використовуючи Chrome, ось як веб-браузер представляє цей сайт: