名称解释:
取决于浏览器:当用户在同一设备上使用不同的浏览器时,某些组件不会更改,从而使设备可以进行指纹识别
稳定:每次刷新页面时,某些组件都会更改(“不稳定”)
组件 | 取决于浏览器 | 稳定 |
---|
userAgent(用户代理) | 是 | 是 |
language(语言) | 否(大部分时间) | 是 |
colorDepth(颜色深度) | 没有 | 是 |
deviceMemory(设备内存) | 没有 | 是 |
pixelRatio(像素比) | 没有 | 是 |
hardwareConcurrency(设备并发线程数) | 否(但IE不支持) | 是(但IE不支持) |
screenResolution(屏幕分辨率) | 没有 | 是 |
availableScreenResolution(屏幕有效分辨率) | 没有 | 是 |
timezoneOffset(时区偏移) | 没有 | 是 |
timezone(时区) | 没有 | 是 |
sessionStorage | 是 | 是 |
localStorage(本地存储) | 是 | 是 |
indexedDb(索引数据库) | 是 | 是 |
addBehavior(是否支持Behavior,IE5的属性) | 是 | 是 |
openDatabase(是否支持调用本地数据库) | 是 | 是 |
cpuClass(所在系统的CPU等级) | 没有 | 是 |
platform(客户端操作系统) | 否(大部分时间) | 是 |
doNotTrack(不跟踪) | 是 | 是 |
plugins | 是 | 是 |
canvas(帆布) | 是的,在实践中 | 是(大多数时候) |
webgl | 是的,在实践中 | 是(大多数时候) |
webglVendorAndRenderer | 否(大部分时间) | 是 |
adBlock(广告阻止) | 是 | 是(但可能取决于时间) |
hasLiedLanguages(用户是否篡改了语言) | 没有 | 是 |
hasLiedResolution(用户是否篡改了屏幕分辨率) | 没有 | 是 |
hasLiedOs(.用户是否篡改了操作系统) | 没有 | 是 |
hasLiedBrowser(用户是否篡改了浏览器) | 没有 | 是 |
touchSupport(触摸屏支持) | 没有 | 是 |
customEntropyFunction(自定义方法) | – | – |
fonts | 是的(大多数时候) | 是 |
audio | 是 | 是 |
enumerateDevices | ?-见#498 | 否 |
项目有需求,登录前有匿名举报功能,为了避免恶意举报,需标识出访问者进行控制或封禁。首先想到的是获取mac地址,网上资料很多,大体有这几种方案:获取mac地址通过浏览器获取浏览器或是利用ActiveX,目前只有IE支持,谷歌和火狐不支持(谷歌和火狐好像有另外的插件可以支持,但没有成熟应用广泛的插件)服务器获取,基本思路是先获取ip,根据ip调用nbtstat(响应有点慢) 或 arp命令,示例代码如下:public class GetIpAndMac extends HttpServlet{
基于OpenUDID的ANE,使用它可以在AIR项目中通过ActionScript接口来获得设备UDID。
凡是接触过iOS的开发者都清楚每一台iOS设备都有一个唯一的识别号:UDID,这个40位的字符串是你的设备区别于其他任何一台设备的唯一标识。
这个字符串用处非常大,我们可以把它作为用户的唯一ID,跳过用户登陆这一步,直接有效并且安全地与数据库中的用户记录进行绑定。
虽然UDID本身并不含有任何用户信息,但是由于应用开发者可以将UDID与服务器上用户信息进行绑定,从而带来了诸多隐私泄漏等问题,所以苹果最终还是拒绝开发者访问UDID的官方接口,建议开发者使用CFUUID来代替UDID。CFUUID有很多问题,如果从一台设备将系统备份到另一个设备,两个设备就会拥有相同的CFUUID,如果从临时文件中备份系统,就会出现一个设备中出现不同的CFUUID,但是尽管如此,CFUUID还是所有UDID替代品中最靠谱的一个。
AS类OpenUDID是一个静态类,它只有一个静态属性UDID,使用方法用一行代码:
var id:String = OpenUDID.UDID;
1、首先,客户端调用wx.login,回调数据了包含jscode,用于获取openid(用户唯一标识)和sessionkey(会话密钥)。
2、拿到jscode后,将其发送给服务端,服务端拿它与微信服务端做交互获取openid和sessionkey。具体获取方法如下:
(1)需要写一个HttpUrlConnection工具类:
public class MyHttpUrlConnection {
private final int mTimeout = 10000; // 超时时间
* get访问
在 Web 应用程序中, 可以使用浏览器的 window.navigator.userAgent 属性来获取浏览器的用户代理字符串。这个字符串包含有关浏览器类型和版本的信息, 但是它不是唯一的, 因为不同的浏览器可能具有相同的用户代理字符串。
要获取更加唯一的标识符, 可以使用浏览器提供的 Web 技术, 如:
浏览器或操作系统提供的唯一设备 ID: 在 HTML5 中, 可以使用 naviga...
打破不良API
欢迎使用Breaking Bad API! 本文档将为您提供开始在此标志性电视连续剧中发出HTTP请求所需的所有信息。 在开始项目之前,请先阅读我们的文档,不要忘了冰格!
该API是免费的,我无意创建身份验证。 但是,为防止有害活动,每天的请求速率限制为10,000个。 如果您碰巧达到了该限制,您将收到429状态码,并在24小时后重新获得访问权限。
每个字符的唯一ID
角色的全名
角色的生日
角色的已知职业清单
角色的图片(以jpg格式)
他们还活着吗(还是海森堡找到了他们??)
他们称为的已知昵称
角色出现的季节清单
获取所有角色
端点从所有字符中检索信息。
/api/characters
一个基于python的图像分类调查服务器,用户可以利用api自己上传图像并指定分类,也可以从服务器的图像中查看图片,并指定分类。
由于引入了其他仓库,因此需要使用--recursive进行克隆
git clone --recursive https://github.com/fumiama/image-classification-questionnaire-server.git
接下来,你需要安装cmake,然后执行以下命令以生成程序所需的C库。
mkdir build
cd build
cmake ..
图片扩展名只接受.webp,如需其它格式请自行修改代码。
图片的唯一标识使用了该图片dhash值的base16384编码的前五个汉字。
0. 直接访问
格式: http://[server_domain]/index.html
一、什么是User-Agent
User-Agent是Http协议中的一部分,属于头域的组成部分,User Agent也简称UA。用较为普通的一点来说,是一种向访问网站提供你所使用的浏览器类型、操作系统及版本、CPU 类型、浏览器渲染引擎、浏览器语言、浏览器插件等信息的标识。UA字符串在每次浏览器 HTTP 请求时发送到服务器!
浏览器UA 字串的标准格式为: 浏览器标识 (操作系...
在很多移动应用开发中,我们需要获取手机设备的唯一标识,以便于做一些数据统计、用户识别等操作。在H5开发中,我们同样需要获取设备的唯一标识,这时候我们可以利用HTML5提供的一些API来实现。
一、使用HTML5的Web Storage
其中最常见的方式就是利用Web Storage。我们可以使用localStorage来存储一个设备唯一标识的值,当用户首次访问网站时创建一个唯一标识,在以后的访问中直接读取该值。
例如,我们可以在用户首次打开网站时生成一个UUID(Universally Unique Identifier,通用唯一识别码),并将其存入localStorage,然后用户以后的所有访问中直接读取这个值。
但是要注意的是,如果用户清除了浏览器缓存或者使用了不同的设备访问网站,那么就无法获取到之前生成的唯一标识,所以这种方式并不是完全可靠的。
二、使用HTML5的设备指纹
此外,HTML5还提供了一些硬件信息和软件信息,在浏览器中能够生成唯一标识的信息成为“设备指纹”,这些信息包括操作系统、浏览器、系统语言、屏幕分辨率、显示器尺寸、字体、插件等,利用这些信息可以生成唯一标识。
但是设备指纹不能百分之百的标识用户,因为不同的用户的设备指纹也可能很相似。
三、使用第三方API
还有一种方式是使用第三方提供的API,例如Google的Firebase Cloud Messaging API,该API可以生成设备唯一标识,并且可以跨平台使用。
总而言之,获取设备唯一标识并不是一件可以百分之百准确的事情,我们需要根据实际需求来选择合适的获取方式,以及结合其他信息来进行用户识别。