在做一个网页, 环境 LNAMP, PHP 只能获取到客户端 IP 地址, 现在我想获取到有唯一性的客户端识别码, 比如 MAC 之类的. 思路是用 JS 获取然后提交到服务器上, 但网上搜了搜除了用 IE + ActiveX 没啥其他方法了. 请问 V2 的大佬: 有没有什么方法可以获取到客户端 MAC? 如果不能获取到, 有没有类似的信息可以获取到呢?
1
yanyu0517 2016 年 12 月 19 日
canvas
|
2
knightdf 2016 年 12 月 19 日 |
3
learnshare 2016 年 12 月 19 日 Don't do that
|
4
INW017bzMfgkkYGn 2016 年 12 月 19 日 你姐姐的隐形眼镜还好吗
|
5
Rice 2016 年 12 月 19 日 via iPhone
没有办法,要不试试画布指纹加 cookie 加 etag 加浏览器信息采集组合拳?
|
6
jugelizi 2016 年 12 月 19 日
这种行为....
|
7
R18 2016 年 12 月 19 日
浏览器指纹么? Fingerprintjs2 但如果你真的是想要 MAC 地址 我想也许是很难的吧??
|
8
leega0 2016 年 12 月 19 日 via iPhone
canvas ,学到了
|
9
woyaojizhu8 2016 年 12 月 19 日
利用缓存跟踪,最难避免
|
10
gongbaodd 2016 年 12 月 19 日
canvas ,学习了+1
|
11
yushiro 2016 年 12 月 19 日 via iPhone
canvas 那个不行,重复率还是很高的,我试了几个 iphone 手机都一样的指纹
|
12
UnisandK 2016 年 12 月 19 日
|
13
UnisandK 2016 年 12 月 19 日 1. 浏览器在使用过程中,所使用的缓存机制会暴露。
你最近访问过支付宝,那么在缓存期间,访问支付宝的响应速度会很快。这些对于不同网站的访问速度,可以得出类似用户访问历史的数据,而每个人这份数据都是不同的,你爱淘宝我爱天猫就是如此。 这个是很有意思的一个思路,比如下边这个 http://www.solidot.org/story?sid=45943 |
14
q397064399 2016 年 12 月 19 日
这个几乎无解,浏览器 设置成 隐私模式 你很难 跟踪某个客户,
用 IP 来判断 很容易误伤,尤其是现在 手机 这么多设备都是 在公网 IP 后面 另外广域网 无法跟踪对面的 mac 当然针对普通用户 cookies 就差不多够了 |
15
miyuki 2016 年 12 月 19 日 via Android
MAC 地址基本无解
可以有类似的指纹比如 Canvas Fingerprint |
16
t6attack 2016 年 12 月 19 日
和 php 、服务环境没关系,任何服务端环境、任何语言,都只能获取数据报文里有的东西。
MAC 就别想了。连运营商都拿不到 NAT 里面设备的 MAC 。 另外,除了 IP 地址,其他信息都可以 0 成本伪造。如果目的是为了限制重复注册之类的,这没用。 |
18
zsx 2016 年 12 月 19 日
Canvas FingerPrint 没什么意义,我去年测试的结果是“由浏览器在不同环境下生成的 Canvas 图像不同而得以追踪用户,所以是跟着浏览器走。无法被清除,但当浏览器更新,或是安装什么奇怪的软件后可能便会被视为一个新用户。在 IE10+生成的信息完全一样,在同配置的 iPhone 上生成的信息也完全一样。其它浏览器下重复率非常高。”
当时最有意义的还是 HSTS SuperCookie ,不过 Firefox 34+也不能用了,而且这玩意慢的要命。总之,你只能综合判断,但没法获知身份。 |
19
em70 2016 年 12 月 19 日 via Android
让用户注册吧
|
20
pigsinthesky 2016 年 12 月 19 日
cookie+注册
|
21
mingyun 2016 年 12 月 19 日
js 获取不靠谱吧
|
22
qsnow6 2018 年 3 月 16 日
如果是为了防止重复注册
* 如果你依赖 Cookies 或缓存,清理一下就没了 * 如果是依赖 IP,挂下代理就伪装了 ----------- 从 HTTP 协议的角度来看,底层协议本身就是无状态的,无法做到绝对的唯一。如果可以接受一定的重复率,可以看看楼上提到的 Canvas |