PHP:
数据检索
基本的重定向可以很容易地完成(在 PHP 中,在任何输出之前):
header("Location: http://....");
但是,如果您发送此内容,他的浏览器将不会在您的虚假页面上加载任何 javascript 或 HTML。您仍然可以从$_SERVER superglobal variable 收集以下内容:
-
HTTP_USER_AGENT - 无论他的浏览器发送什么作为它的标识
-
REMOTE_ADDR - 他的IP(或服务器代理IP)
这是整个$_SERVER variable dump。
数据保存
在 PHP 中保存数据非常容易。如果你很懒,你可以使用 file_put_contents:
file_put_contents("info.txt", print_f($_SERVER, true));
print_f 中的 true 使函数返回字符串,而不是打印它。
Javascript
数据检索
Javascript 也可以让您访问有关浏览器的信息。但是任何个人信息只有在用户明确允许后才能被检索到。
然后可以使用以下方式完成重定向:
window.location.href = "http://...";
这就是你能得到的:
未经许可
经许可
在用户许可的情况下,可以检索到真正有趣的东西:
数据保存
这就是复杂的地方:您需要时间将数据从用户的浏览器发送到您的服务器。可能的解决方案:
通常,在加载/发送数据时,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
Read on MDN. 不适用于所有浏览器。
心理学
我要寻求的解决方案不是通过计算机黑客攻击,而是通过社会工程。我会玩他的游戏并最终发现他是谁(前提是我认识现实生活中的那个人)。每个人都有行为和表达特征。他们假装自己是别人的事实并不像看起来那么重要。
事实上,最好使用计算机用户来破坏任何计算机安全性。任何其他类型的安全或保密也是如此。