Web 如何限制访问设备

160 天前
 imherer

一个内部系统,但是部署在公网上的,用户都是用 chrome 访问,基于安全性考虑加 IP 访问限制,但是有些用户没有固定公网 ip 或者甚至可能有移动设备访问。

有没有什么办法像 app 那样取到设备信息呢,加设备白名单限制访问

5620 次点击
所在节点    程序员
72 条回复
8355
160 天前
UA 吗。。。 随便伪造
最好是借助一些外部系统跳转做 sso ,类似钉钉/飞书登陆,其实你的核心诉求是鉴权用户而不是鉴权设备。
合法用户的所有设备都可用才对
UnluckyNinja
160 天前
http 请求是可以自己构造的,设备信息不靠谱,加个 auth 模块吧
w292614191
160 天前
如果 nginx 之类的能限制 MAC 地址就好了。
w292614191
160 天前
我之前翻了一圈,希望能在云服务器限制 mac 地址,结果没什么好的办法。
mightybruce
160 天前
既然都是浏览器访问,考虑一下浏览器指纹,使用一些成熟的浏览器指纹库,基本不管你 IP 和 浏览器头部做一些变化都能独立识别用户。
mightybruce
160 天前
比如这个 js 库的 demo
https://fingerprint.com/demo/
liuidetmks
160 天前
@w292614191 不可能的,除非你在应用层获取 mac
leo7476040305
160 天前
套一层 VPN ,VPN 服务器固定 IP ,只允许 VPN 服务器 IP 访问
kristofer
160 天前
加个登陆验证?
djs
160 天前
上面老哥说的浏览器指纹可以考虑下
fox0001
160 天前
内部系统不需要用户登录的吗?如果需要,就是登录验证、二次验证等的解决方案。如果不需要登录,可以考虑颁发证书的形式。
poxiaogg
160 天前
可以用双向证书
wangtian2020
160 天前
看你是防君子还是防小人,结果上来说就是小人防不住。
HangoX
160 天前
搭建个 vpn 吧,要么用 openvpn ,要么用 tailscale ,这样安全性会高很多
skallz
160 天前
@mightybruce 浏览器指纹只能作为辅助识别用户的手段,不能作为唯一识别用户的手段,你可以看到任何指纹库其准确率都到不了 100%,哪怕是你发的这个 npm 文档上也写了准确率为 40%至 60%
skallz
160 天前
这种需求加个 auth 模块吧,接入微信钉钉飞书就行
czk1997
160 天前
要求 SSO 。设备纳入 MDM ,加证书登录。或者类似 Cloudflare ZeroTrust 这样的方案。
wheat0r
160 天前
如果用户都在一个或几个固定的网络里,用内网的防火墙解决问题
htfcuddles
160 天前
你需要的是 SSO+Device Enrollment ,例如 MS 的 Intune
xiri
160 天前
@w292614191 mac 地址只在局域网有效,出了网关看到的就都是网关的 mac 地址了,你这个不可能实现的,除非你自己实现应用端和服务端,把 mac 地址封装到数据载荷里

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://ex.noerr.eu.org/t/1110896

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX