lancelock
V2EX  ›  问与答

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

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

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

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

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

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

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

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

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

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