web 应用如何限制访问地点?

2020-10-07 20:42:27 +08:00
 lancelock

我最近帮亲戚做一个简单的管理软件,他要求只有他几个店里能登陆,我没想到啥实现的方法

原本打算通过 ip 白名单来做,但试了下发现公网 ip 是一直变化的,要申请固定 ip 又很贵。有没有合适的方式啊

1683 次点击
所在节点    问与答
16 条回复
Rxianbei
2020-10-07 21:13:27 +08:00
验证 http 请求头,chrome 有个插件可以自定义请求头
2067
2020-10-07 21:54:24 +08:00
客户端私钥认证,自用的话随便签个证书就可以
CallMeReznov
2020-10-07 21:59:14 +08:00
做个 knockport 行为处理.
如果是类似阿里云 /腾讯云就利用它的 CLI 工具添加白名单.

大概就是写个批处理或者你自己下载 SDK 集成好,每次开启软件之前或者手动运行,把外网新 IP 添加到安全组内即可.

之前自己搭建的私人魔法就是用这个套路.
westoy
2020-10-07 22:02:43 +08:00
常见的经销商限 IP 方案很多都是通过 VPN 做的, 服务端系统限制只有 VPN IP 能访问, 分销连 VPN 后再访问,VPN 锁死硬件特征和证书
ochatokori
2020-10-07 22:03:21 +08:00
密码登录不行吗。。。
dzdh
2020-10-07 23:24:44 +08:00
客户端证书 +1

刚研究完 PKI,客户端证书稳的一批 还能无感统计登录和操作历史啥的。
qa2080639
2020-10-07 23:48:48 +08:00
浏览器指纹。后台只信任那几个店里的浏览器能访问
lancelock
2020-10-08 10:03:23 +08:00
@ochatokori 在任何地方都可以密码登录吧,怎么限制啊
namelosw
2020-10-08 10:17:06 +08:00
听起来密码没啥问题啊?难不成亲戚是搞机密信息的?

不过硬要做搞证书就是了,只有店里的机器装证书。
renmu123
2020-10-08 13:53:43 +08:00
(你说服他这是伪需求就不用开发了
dingwen07
2020-10-08 14:09:28 +08:00
客户端证书验证
或者 base auth 然后在指定计算机内保存密码?
whileFalse
2020-10-08 18:05:26 +08:00
用蒲公英或者其他方式直接组成局域网
lancelock
2020-10-08 19:49:02 +08:00
@namelosw 没有啊,他是做房产中介的,他这个产品的主要功能就是要录入房源客源信息,让店里的员工去跟进追踪啥的。因为这些信息对他们来说就是资源,他担心员工会把这些东西外泄,或者带到竞争对手的店里去。他们这里人员流动还是很高的,所以希望只有在他们店里能使用。
你用密码登录我在别的地方不也一样能登录吗?怎么限制。
lancelock
2020-10-08 19:51:00 +08:00
谢谢各位的建议,客户端证书啥的我自己也没尝试过,不知道好不好实现。而且个人感觉还是太麻烦了,他们自己也不会弄,就算做出来可能还得我去帮他们装,有点不切实际,我们也不在一个城市。另外我感觉也没有限制好地理位置吧,其他电脑上也能装这个证书吧?
lancelock
2020-10-08 19:53:25 +08:00
我考虑过可不可以检测客户端的地理位置来判断,我记得前端好像是有这个 api 的,但不知道精度够不够
namelosw
2020-10-08 20:31:13 +08:00
前端没有这种 API 吧,别人一访问你的网站你就知道他在哪还了得…… 最多就是有一些库靠 IP 能告诉你大致位置,精度肯定是不够的。还有就是 IP 白名单,问题跟你自己说的一样。

还有就是靠内网,VPN 啥的,换个 WIFI 就用不了之类的。

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

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

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

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

© 2021 V2EX