所以我正在尝试在cakePHP网站上实现evercookie,但我得到了一些非常非常奇怪的结果。我刚刚将代码文件复制并粘贴到我的app / webroot目录中,我似乎没有收到任何404错误,但我的cookie 不保存 - 他们正在被重写每一次。甚至更奇怪的是,当我加载页面时,它向Google.com发送至少90个GET请求,并在Google Chrome中存储4-5个SQLite数据库; evercookie网站只存储一个。
我生成的HTML页面中的代码是:
var ec = new evercookie();
// set a cookie "id" to a random 10 character string
// usage: ec.set(key, value)
ec.set("id", "vm5m172dyg");
// retrieve a cookie called "id" (simply)
ec.get("id", function(value) { alert("Cookie value is " + value) });
// or use a more advanced callback function for getting our cookie
// the cookie value is the first param
// an object containing the different storage methods
// and returned cookie values is the second parameter
function getCookie(best_candidate, all_candidates)
{
alert("The retrieved cookie is: " + best_candidate + "\n" +
"You can see what each storage mechanism returned " +
"by looping through the all_candidates object.");
for (var item in all_candidates){
document.write("Storage mechanism " + item +
" returned: " + all_candidates[item] + "<br>");
}
}
ec.get("id", getCookie);
// we look for "candidates" based off the number of "cookies" that
// come back matching since it's possible for mismatching cookies.
// the best candidate is most likely the correct one
此代码的一部分写入我的文档,这是输出(对我来说很好):
Storage mechanism userData returned: undefined
Storage mechanism cookieData returned: d9g6mfoo4y
Storage mechanism localData returned: d9g6mfoo4y
Storage mechanism globalData returned: undefined
Storage mechanism sessionData returned: d9g6mfoo4y
Storage mechanism windowData returned: d9g6mfoo4y
Storage mechanism historyData returned: undefined
Storage mechanism pngData returned: d9g6mfoo4y
Storage mechanism etagData returned: d9g6mfoo4y
Storage mechanism cacheData returned: d9g6mfoo4y
Storage mechanism dbData returned: d9g6mfoo4y
Storage mechanism lsoData returned: d9g6mfoo4y
Storage mechanism slData returned: d9g6mfoo4y
我的问题是如何阻止发送给Google的90多个请求?我不知道它为什么这样做。如果我在网站上有十个用户(这并不令人难以置信),那就超过了900(0)。你有没有想过为什么每次刷新页面时cookie都会重置? 这正是我想要阻止的。
答案 0 :(得分:1)
// retrieve a cookie called "id" (simply)
ec.get("id", function(value) {
if(value == undefined){
// set a cookie "id" to a random 10 character string
// usage: ec.set(key, value)
ec.set("id", "<?php echo $hash ?>");
}
else
{
// do nothing
}
});