Web 如何限制访问设备

43 天前
imherer  imherer

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

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

4909 次点击
所在节点   程序员  程序员
72 条回复
EndlessMemory
EndlessMemory
43 天前
搞个账号不好吗
815979670
815979670
43 天前
套一层 webvpn 内部系统只允许通过 webvpn 访问,webvpn 不逊用户额外装什么软件 直接用浏览器访问
zgsi
zgsi
43 天前
天啊,这问题不就是我年前遇到的。web 在公网,但是只给公司内部用。ip 是变化的。
想了一圈,最后闲着无聊写了个 chrome 插件,请求接口的时候追加 auth 鉴权
ysc3839
ysc3839
43 天前
客户端证书,或者 http basic auth ,用户名+密码就相当于 token
totoro625
totoro625
43 天前
弄个 web 界面,让他们访问之前点击相应的链接把 IP 添加到白名单内,再访问这个系统
luolw1998
luolw1998
43 天前
cloudflare Zero Trust
zgsi
zgsi
43 天前
@zgsi 看了你的补充,我也补充下。
chrome 插件首次安装后生产一个 guid 缓存到本地,然后后台加白名单和权限,然后请求接口的时候把 guid 加密放到 auth 。
这样应该安全吧?
imherer
imherer
42 天前
@zgsi #27 也有问题。 就像他们说的防君子不防小人,要是有人拿到这个 guid ,直接加到别的设备里,那就相当于新增设备了
zgsi
zgsi
42 天前
@imherer 内部泄露那没办法了。你给他账号密码他一样给别人。我目前这样实现了。目前测试观察阶段很稳定。我目前弊端是要刷新才会生产新的 auth ,后期可能会考虑登录后的状态有效期给长一点来解决。
如果你有了好的解决方案,麻烦踢下我!
XiLingHost
XiLingHost
42 天前
试试 mtls 吧,或者基于 FIDO 的设备 passkey
imherer
imherer
42 天前
@zgsi #29 嗯嗯
chobitssp
chobitssp
42 天前
TOTP 动态口令
johnhuangemc2
johnhuangemc2
42 天前
IP 限制 + VPN
我们把敏感网站限制成仅公司 IP 可访问, 然后在公司网络部署 OpenVPN, 敏感网站添加 VPN 路由配置走 VPN, 要访问敏感网站就开启 VPN 访问
Lemon2ee
Lemon2ee
42 天前
我也建议从网络层面解决问题。
部署一个 tailscale subnet router 在服务傍边,广播服务 ip
部署一个 tailscale client 在公司内部,添加路由规则
即可达到内部可以访问服务,并且服务无法直接访问公司内部网络
(大概是这样的,没实战过
cxh116
cxh116
42 天前
客户端证书应该是比较成熟的方案吧。楼上有提到,在 nginx 里也可以实现。还可以每个客户端装不同证书,吊销指定的客户端证书。

https://developers.cloudflare.com/ssl/client-certificates/
liuzimin
liuzimin
42 天前
@8355 我觉得楼主就是鉴权设备而不是用户。我们也有这样的需求,就算这个用户合法,但是只允许他的特定设备接入。
zgzhang
zgzhang
42 天前
你搜索的是 JS 设备指纹
musi
musi
42 天前
不然还是用 electron 包个浏览器吧,你想做的都能实现
Karte
Karte
42 天前
如果真的想进行设备上的限制, 那尽可能做个桌面端. 桌面端获取系统信息然后判定.

如果只想确保登录的人员是合法的, 那尽可能增加双重验证, 或者使用目前最新的认证方案: passkey.

passkey 可以让用户不通过账户名和密码登录, 只需要手机扫描登录的二维码, 然后通过蓝牙与主机交互确认登录.
Karte
42 天前
@Karte 这种方案用户无需记住密码, 所有登录操作必须有认证过的设备与页面交互才能进行登录.

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

https://www.v2ex.com/t/1110896

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

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

© 2021 V2EX