2011-05-26 86 views
1

有什么办法可以用java来唯一标识一个用户吗?有什么办法来唯一标识一个访问我的网站网络的用户?

我有以下情况:我拥有10个网站,我想知道同一用户何时访问我的任何网站。因此,如果用户访问站点A,之后他访问站点B,我希望得到对该问题的回应:此特定用户之前是否访问过站点A?

跟踪IP是一种很差的方法,因为大多数IP是动态的或者更多的人通过路由器共享相同的IP。

我猜得到MAC地址是一个安全分支:)。

Cookie只适用于特定网址!?

有什么办法可以让这个工作?

编辑:

我看这不是possbile跨多个域的访问相同的cookie。毕竟它是可笑的吗?这里的参考:在:Cookie problems with IE and Chrome (working with java)“Cookies是基于域的。许多浏览器拒绝从其他域提供的服务的嵌入式资源(CSS/JS /图像)上的cookie,而不是页面服务于”

因此,如果我添加response.addCookie(UniqueCookieForCurrentUser);它可以在其他域名上使用吗?

我打电话,如你所说,从JavaScript:

var query = '?requestURI=' + encodeURIComponent(requestURI) 
     + '&resolution=' + encodeURIComponent(resolution) 
     + '&websiteid=' + encodeURIComponent(id) 
     + '&DisplayedBanners=' + encodeURIComponent(DisplayedBanners); 
    document.getElementById("body").innerHTML = "<img src ='http://dan-vaio:8080/licenta/bannerimg.gif" + query + "' width = 728 height = 90 />"; 

而在servlet的我回到这一点:

File f = new File(filePath); 
byte[] b = new byte[(int)f.length()]; 
FileInputStream fis = new FileInputStream(f); 
fis.read(b); 
ServletOutputStream out = response.getOutputStream(); 
out.write(b); 
out.close(); 
+0

所有你的“网站”在同一个根域名下? – CtrlDot 2011-05-26 19:12:59

+0

@CtrlDot不,他们不是 – 2011-06-01 12:25:25

回答

3

做的所有广告(添加cookie来响应后)网络会这样做:您在每个从一台服务器加载cookie的站点上放置一个小型网络bug,这样无论用户访问哪个站点,他们都会从同一台bug服务器获取cookie。在每个站点的错误中添加一个唯一的标识符,以便您不依赖引用者来识别错误服务器上每个命中的源站点。


如下:

确定。在每个站点上,你也会有这样的每个着陆页上:

<img src="http://bugs.example.com?src=siteName" width=1 height=1 alt="Track me, please!" /> 

,并适当为每个站点的东西代替siteName。例如src=siteAsrc=siteB等...

当用户进入网站A时,他们的浏览器将从您的webbug服务器加载该图像,并发出一个cookie来识别用户。一个PHP会话cookie,或类似Apache的mod_usertrack生成的一个)。重要的是,每个用户的Cookie值都是唯一的。

所以现在这个用户在他们的浏览器中有一个cookie,example.com.track=2536t4234235423423。当用户访问B站点时,浏览器会将这个cookie连同图像请求一起发送到Web Bug服务器,现在你的日志将显示cookie 2536t4234235423423已经访问了站点A和站点B.

该cookie本身是无用的,它只是标识一个用户。但是,结合包含源服务器名称的Web Bug服务器请求的URL,您可以查看访问哪个特定cookie(例如用户)的网站。

+0

嘿,谢谢你的回答!我还没有真正明白。这是如何识别用户的?也许最好先对网络bug进行一些研究,然后再回答问题:) – 2011-05-26 19:36:54

+1

它不会以任何方式识别用户,除非您可以通过注册捕获关于它们的其他信息。它所做的是让你通过cookie识别用户,因此,如果某人前往网站'A'并获取cookie'Z',那么当他们访问网站'B'时,Cookie将会一起发送,您可以告诉那些cookie Z所属的人都去了这两个站点。 – 2011-05-26 19:39:26

+0

仍然没有得到它。当我访问网站B时,我怎么知道cookie'Z'属于同一个人? – 2011-05-26 19:50:17

相关问题