Использование ссылки PHP/JavaScript для получения информации о посетителе сайта
Кто-то пытается меня обмануть, они притворяются одним из моих близких друзей, чтобы унизить нас обоих. Этот человек создал поддельную учетную запись электронной почты, выдавая себя за человека и пытаясь получить от меня личную информацию. Я убедился с моим другом, что на самом деле это был не он, теперь мы пытаемся выяснить, кто это.
Я хочу отправить им ссылку на какую-нибудь страницу PHP или JS, чтобы собрать хотя бы небольшую информацию об их клиенте (браузере, операционной системе, может быть, местонахождении интернет-провайдера?), А затем переслать их на реальный веб-сайт (например, на YouTube). видео или что-то).
Имея очень базовые знания PHP, я действительно ценю любой скрипт, который позволил бы мне собрать некоторую основную информацию.
Спасибо!
2 ответа
PHP:
Поиск данных
Основное перенаправление может быть сделано очень легко (в PHP, перед любым выводом):
header("Location: http://....");
Однако, если вы отправите это сообщение, его браузер не загрузит никакой javascript или HTML на вашу фальшивую страницу. Вы по-прежнему сможете собирать следующее из суперглобальной переменной $_SERVER:
HTTP_USER_AGENT
- что бы ни отправлял его браузер для идентификацииREMOTE_ADDR
- его IP (или IP прокси сервера)
Вот и все $_SERVER
переменный дамп.
Сохранение данных
Сохранить данные в PHP довольно просто. Если вы ленивы, вы можете просто использовать file_put_contents:
file_put_contents("info.txt", print_f($_SERVER, true));
true
в print_f
заставляет функцию возвращать строку вместо ее печати.
Javascript
Поиск данных
Javascript может также позволить вам получить доступ к информации о браузере. Но любая личная информация может быть восстановлена только после того, как пользователь явно разрешит это.
Перенаправление тогда может быть сделано с помощью:
window.location.href = "http://...";
Итак, вот что вы можете получить:
Без разрешения
navigator.userAgent
- так же, как пользовательский агент в PHP, но я думаю, что этот не может быть спрятан так легко (некоторые люди устанавливают дополнения, чтобы скрыть своего реального пользовательского агента)- Размер экрана
- операционная система (и другая интересная информация)
С разрешения
С разрешения пользователя можно получить действительно интересные вещи:
- Расположение - это довольно точно на самом деле
- Данные камеры и микрофона
Сохранение данных
Вот где все сложно: вам нужно время, чтобы отправить данные из браузера пользователя на ваш сервер. Возможные решения:
Синхронный запрос
Обычно при загрузке / отправке данных javascript отправляет запрос, назначает функцию, которая будет выполняться, когда она заканчивается и заканчивается:
//Example of loading next page with AJAX
var req = new XMLHttpRequest();
req.open("POST", "http://...");
//This function will be started after the request finishes
req.onload = function() {
showPage(this.responseText);
}
//The request starts and the javascript thread ends
req.send("page=2");
Теперь, если вы перенаправите пользователя куда-то еще, запрос может быть остановлен. Однако вы можете установить запрос на блокировку / синхронность (или вы можете перенаправить запрос после его завершения, что может быть подозрительным)
//Example of sending user info synchronously
var req = new XMLHttpRequest();
req.open("POST", "http://...", false);
//Let getuserInfo be function that creates the data
req.send(getUserInfo());
//Redirect when done
window.location = "http://...";
Во втором случае браузер может перестать отвечать, что на самом деле менее подозрительно, чем застревание на пустой странице.
navigator.sendBeacon
Читайте на MDN. Не работает во всех браузерах.
Психология
Решение, которое я бы выбрал, заключалось бы не в компьютерном взломе, а в социальной инженерии. Я играл бы в его игру и в конце концов узнал, кто он (при условии, что я знаю человека в реальной жизни). У каждого человека есть поведенческая и экспрессивная характеристика. То, что они притворяются кем-то другим, не так важно, как может показаться.
Фактически, любая компьютерная безопасность лучше всего нарушена с помощью пользователя компьютера. То же самое касается любого другого вида безопасности или секретности.
Вы можете получить некоторую информацию, такую как IP и User Agent, и записать ее в файл.
<?php
$fp = fopen("Output.txt","a");
$visitorIP = addslashes((getenv(HTTP_X_FORWARDED_FOR)) ? getenv(HTTP_X_FORWARDED_FOR) : getenv(REMOTE_ADDR));
$visitorBrowser = addslashes(( $_SERVER['HTTP_USER_AGENT'] ) ? $_SERVER['HTTP_USER_AGENT'] : 'Browser undetectable.');
$User_Info = "IP: " . $visitorIP . "\t\tUser Agent: " . $visitorBrowser . "\n";
fwrite($fp, $User_Info);
header( 'Location: http://REDIRECTURLHERE' ) ;
?>
Результаты будут в файле с именем Output.txt. Отсюда вы можете получить его повторно