有人问起:在用户浏览器不安装插件的情况下,有什么好的手段来跟踪并识别用户身份的唯一性,防止在诸如匿名投票中用户重复点击。
大致整理了一下思路,目前用于跟踪识别用户身份大致采用如下一些方案:
1、在用户浏览器安装诸如Activex、Applet插件来跟踪用户
通过Activex、Applet插件来获取用户PC的CPU序列号、硬盘ID、网卡MAC地址等信息来唯一识别用户身份。
优点:
由于CPU序列号、硬盘ID、网卡MAC地址等不会经常变动,因此获取的用户信息相对真实且唯一
缺点:
需要用户手动安装插件,在这木马盛行的年代,用户对安装这样的插件都较为敏感;由于像Firefox、Chrome、Safari、Opera这样的浏览器并不支持Activex;对于Applet这样的末路黄花让用户安装更加不靠谱。
2、采用Flash Cookies(Local Shared Object )技术来跟踪用户
Flash Cookies或者是Local Shared Objects利用了Flash的SharedObject
对象,其功能与浏览器中的cookies作用类似,可以用来存储相关的信息。
优点:
Flash插件的广泛性,应该95%以上的浏览器都安装了Flash插件,能够较好支持Firefox、Chrome、Safari、Opera等浏览器;
Flash Cookies相对于浏览器Cookie可以存储更多的数据,普通浏览器的cookies不能储存超过4K的资料,而Flash cookies则能储存达100K;
Flash Cookies的跨浏览器,Flash Cookie可以跨Firefox、Chrome、Safari、Opera,用户在同一台PC用多个浏览器访问同一网站(同一个domain)后,Flash Cookies都一样,因此可以唯一识别一台PC。
清除或禁用浏览器Cookies时候,不会影响Flash Cookies。
因此Flash Cookie是一个较好跟踪用户的手段,值得推荐。
按照Wikipedia
的说法,查看一下自己的操作系统Flash cookie的存储路径,可以看到包括:google.com,macromedia.com,msn.com,yahoo.com,ebay.com等都采用了类似的方案。
尽管用户也可以安装诸如BetterPrivacy
这样的插件或手工直接删除FlashCookie,但目前而言,知道Flash Cookie的用户较少。
3、通过HTTP Cookie来跟踪用户
优点
:大部分浏览器都支持,不需要任何单独插件
缺点
:在同一台PC上,不同的浏览器有不同的Cookie;Cookie很容易被用户手工清除或禁用;
4、通过IP地址来跟踪
优点
:直接在服务器端获取,不需要客户端任何支持
缺点
:对于在局域网内通过了NAT地址转换及使用了Proxy的用户,通过所获得的IP地址并不是很准确,不能正确识别同一个用户。
5、类HTML5的客户端本地存储方案
HTML5规范提供了浏览器本地存储解决方案,这篇文章
总结了各种浏览器所采用的类似于HTML 5的本地存储方案(不一定与HTML5 兼容)
Firefox 3.5, Safari 4, IE8:
HTML5 localStorage
; these modern browsers all support the core localStorage functionality defined in the HTML5 draft.
Firefox 2.x and 3.0
:
Gecko globalStorage
, a very early implementation similar to HTML5’s localStorage.
Safari 3.1 & 3.2
:
HTML5 Database Storage
, because Safari 3.1 and 3.2 don’t support HTML5 localStorage.
IE6, IE7
:
userData persistence
, a rarely used IE feature for associating string data with an element on a web page and persisting it between pageviews.
Google Chrome
:
Gears Database API
, which is built into Chrome and thus doesn’t require a separate install. Surprisingly, Chrome doesn’t yet natively support any form of HTML5 Storage.
6、客户端本地存储方案
基于各种浏览器客户端本地存储机制的问题,一些项目提供了客户端的本地存储机制,包括:PersistJS
、Dojo Storage
、Google Gears
、Taffy DB
、YUI Storage Utility
等。
这篇文章
对这些机制做了比较好的总结:
Dojo Storage
* 优点:配备的文档较全,有较大的用户基础
* 缺点:如果安装有Flash插件,只对Internet Explorer进行支持
* 缺点:不支持基于WebKit的浏览器 (像Safari)
* 缺点:运行时还需要其他Dojo库
Google Gears
* 优点:有Google作支持,像Dojo一样,配备的文档较全
* 缺点:还没有广泛部署
* 缺点:插件没安装就不能运行
相比较而言,PersistJS项目试图对各种浏览器的本地存储机制进行封装,保证了API的一致性,是什么让PersistJS更好?
* 很小(gzip压缩之后只有3k)
* API一致,与所用浏览器无关
* 无须浏览器插件和其它库
* 当所用浏览器不支持时,会退而使用cookie
* 声称支持IE、Firefox和Safari的新版本
Trying to address the need for client-side storage sans
browser-specific techniques or browser plugins, Paul has created an
abstraction layer that allows developers to use most of the most common
client-side storage mechanisms via a common interface. It currently
supports persistent client-side storage through the following backends:
-
flash: Flash 8 persistent storage.
-
gears: Google Gears-based persistent storage.
-
localstorage: HTML5 draft storage.
-
whatwg_db: HTML5 draft database storage.
-
globalstorage: HTML5 draft storage (old spec).
-
ie: Internet Explorer userdata behaviors.
-
cookie: Cookie-based persistent storage.
Other notables features include:
-
Small (9.3k minified, 3k gzipped)
-
Standalone: Does not need any additional browser plugins or
JavaScript libraries to work on the vast majority of current
browsers.
-
Consistent: Provides a consistent, opaque API, regardless of
the browser.
-
Extensible: Custom backends can be added easily.
-
Backwards Compatible: Can fall back to flash or cookies if no
client-side storage solution for the given browser is available.
-
Forwards Compatible: Supports the upcoming versions of Internet
Explorer, Firefox, and Safari (Opera too, if you have Flash).
-
Unobtrusive: Capability testing rather than browser detection, so
newer standards-compliant browsers will automatically be supported.
这样看来,采用PersistJS(或YUI Storage Utility
,但YUI包还是太沉)是最优的方案,其次是Flash Cookie,然后是Cookie+IP的方案。
7、参考资料:
http://en.wikipedia.org/wiki/Local_Shared_Object
http://pablotron.org/?cid=1557
http://developer.yahoo.com/yui/storage/
http://www.infoq.com/news/2008/05/persistJS
http://www.infoq.com/cn/news/2008/06/persistJS
http://wonko.com/post/search-pad-browser-storage
http://www.qgy18.com/2008/05/localstorage/
http://safe.csdn.net/n/20091103/5083.html
相关推荐
#### 一、会话状态跟踪概述 会话状态跟踪是指在Web应用程序中维护用户会话信息的过程。这些信息可以包括用户的登录状态、购物车中的商品列表等。通过有效的会话管理,可以显著提升用户体验,例如,当用户在不同的...
该压缩包文件“jsp基于Web的可维护的数据库浏览器(源代码+论文+答辩PPT).zip”包含了一个完整的项目,旨在开发一个基于Web的数据库浏览应用,使用JSP(JavaServer Pages)技术来实现。这个项目的核心目标是提供一个...
### 基于Java网页浏览器课程设计的知识点详解 #### 一、项目概述 本项目是一个基于Java语言编写的简易网页浏览器,适用于课程设计或学习Java编程基础的学生。该浏览器具备基本的网页浏览功能,包括地址栏输入网址、...
总结来说,"基于ASP的CRM客户关系管理系统"是一个利用ASP技术构建的,旨在优化企业客户关系管理的Web应用。通过ASP,开发者能够实现动态交互的用户界面,与数据库进行高效通信,实现销售、市场营销、客户服务等多...
本文将详细介绍一个基于Web的ASP客户关系管理系统的开发过程,包括系统的关键技术、需求分析、总体设计和具体实现。 1. 研究背景与意义 在信息化时代,企业间的竞争日益激烈,客户需求日益多元化。CRM系统能帮助...
Java Web Start技术概述 Java Web Start技术是一种新的应用程序分发方式,由Sun公司从Java 1.4开始提出。它可以将应用程序发布到Web服务器上,并通过单击网页上的JNLP(Java Network Launching Protocol)文件链接...
"易享客户管理系统"是一个基于ASP技术构建的应用程序,旨在帮助企业更有效地管理和跟踪客户信息。通过这个系统,企业可以存储和管理客户的基本信息,如姓名、联系方式、购买历史等,从而提升客户服务水平和销售效率...
基于浏览器或 nodejs 的客户端,用于在测试等中访问敏捷代理( )服务器。 概述 如果您不熟悉敏捷代理,请参阅 ( ) 以了解更多信息。 总之,它甚至允许跨进程(例如 selenium 或浏览器测试套件中的其他进程)对 ...
综上所述,基于SpringBoot的企业客户管理系统不仅提供了一个全面的解决方案来管理企业的客户信息,还通过采用先进的技术栈和技术方案实现了高效、灵活和安全的管理目标。该系统的成功实施对于提升企业竞争力具有重要...
本文通过基于VRML的虚拟工厂场景构建技术的研究,提出了一系列有效的优化技术和解决方案,包括原型节点的使用、管头定位法以及视点跟踪节点的设计。这些技术和方法不仅极大地提升了虚拟工厂场景构建的效率和质量,也...
ASP客户管理系统,通常被称为ztcrm,是一个基于ASP技术构建的企业级应用,主要用于管理和优化企业的客户关系。该系统的核心目标是帮助企业更好地管理客户数据,提高客户满意度,从而提升企业的业务效率和盈利能力。...
1.3 浏览器安全概述 5 1.4 浏览器安全的现状 7 1.5 浏览器的应对策略 9 1.6 “白帽子”与浏览器厂商的联手协作 9 1.7 全书概览 10 1.8 本章小结 12 2 浏览器中常见的安全概念 13 2.1 URL 13 2.1.1 URL的标准...
### 基于Web的SIP实现技术 #### 概述 SIP(Session Initiation Protocol,会话发起协议)是基于IP网络的一种标准通信协议,主要用于管理多方参与的多媒体会话,如视频会议、即时消息传递以及语音通话等。随着互联网...
综上所述,基于Web+GIS的物流车辆跟踪系统通过整合GPS、WebGIS技术和无线通信技术,构建了一个高效、实用的车辆监控平台。该系统不仅克服了传统网络系统的局限性,还极大地提升了用户体验和系统性能。未来,随着技术...
【基于Oracle的分布式客户关系管理系统分析与设计】 在信息技术飞速发展的今天,客户关系管理(CRM)系统已经成为企业提升竞争力的重要工具。Oracle作为全球领先的数据库管理系统供应商,其强大的分布式数据库功能...
#### Edge浏览器概述 Edge浏览器是微软公司在2015年推出的一款全新的网络浏览器,旨在取代Internet Explorer成为Windows平台上的默认浏览器。它采用了EdgeHTML渲染引擎,相较于早期的IE浏览器,Edge在设计上更加...
### 基于Vue技术的农业设备租赁系统关键技术解析 #### 一、系统概述与背景 随着农业现代化的发展,农业设备租赁系统作为一种重要的信息化手段,能够有效地提高农业生产效率和服务水平。传统的农业设备租赁方式通常...