lancelock
V2EX  ›  问与答

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

  •  
  •   lancelock · Oct 7, 2020 · 3103 views
    This topic created in 2225 days ago, the information mentioned may be changed or developed.

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

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

    16 replies  •  2020-10-08 20:31:13 +08:00
    Rxianbei
    Rxianbei
    Oct 7, 2020 via Android
    1
    验证 http 请求头,chrome 有个插件可以自定义请求头
    2067
    2067
    Oct 7, 2020❤️1
    2
    客户端私钥认证,自用的话随便签个证书就可以
    CallMeReznov
    CallMeReznov
    Oct 7, 2020
    3
    做个 knockport 行为处理.
    如果是类似阿里云 /腾讯云就利用它的 CLI 工具添加白名单.

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

    之前自己搭建的私人魔法就是用这个套路.
    westoy
    westoy
    Oct 7, 2020
    4
    常见的经销商限 IP 方案很多都是通过 VPN 做的, 服务端系统限制只有 VPN IP 能访问, 分销连 VPN 后再访问,VPN 锁死硬件特征和证书
    ochatokori
    ochatokori
    Oct 7, 2020 via Android❤️1
    5
    密码登录不行吗。。。
    dzdh
    dzdh
    Oct 7, 2020
    6
    客户端证书 +1

    刚研究完 PKI,客户端证书稳的一批 还能无感统计登录和操作历史啥的。
    qa2080639
    qa2080639
    Oct 7, 2020 via Android
    7
    浏览器指纹。后台只信任那几个店里的浏览器能访问
    lancelock
    lancelock
    OP
    Oct 8, 2020 via iPhone
    8
    @ochatokori 在任何地方都可以密码登录吧,怎么限制啊
    namelosw
    namelosw
    Oct 8, 2020 via iPad
    9
    听起来密码没啥问题啊?难不成亲戚是搞机密信息的?

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

    还有就是靠内网,VPN 啥的,换个 WIFI 就用不了之类的。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1089 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 37ms · UTC 23:00 · PVG 07:00 · LAX 15:00 · JFK 18:00
    ♥ Do have faith in what you're doing.