V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
yeshang
V2EX  ›  PHP

请问 PHP 程序的网站, 怎样才能限制只能某一台电脑访问? ip 不可取, 经常变

  •  
  •   yeshang · 2017-11-15 16:57:06 +08:00 · 5374 次点击
    这是一个创建于 2595 天前的主题,其中的信息可能已经有所发展或是发生改变。
    php 可以获得某台电脑的唯一机器码, 或者唯一的其他码(比如硬盘序列号啥的)?
    38 条回复    2019-04-04 11:26:35 +08:00
    care
        1
    care  
       2017-11-15 17:05:04 +08:00 via iPhone
    访问网站需要密码验证不就行了
    yeshang
        2
    yeshang  
    OP
       2017-11-15 17:08:35 +08:00
    @care 密码不能只限制在一台电脑上访问.
    zhaohehedola
        3
    zhaohehedola  
       2017-11-15 17:11:44 +08:00
    代码就部署在你的电脑上 😉
    boboliu
        4
    boboliu  
       2017-11-15 17:13:20 +08:00 via Android
    ssl_verify_client 稳的一批
    yeshang
        5
    yeshang  
    OP
       2017-11-15 17:13:27 +08:00
    @zhaohehedola 目前是的. 写完就要挂到云了. 就是为了保证安全性. 所以想限制某几台电脑才能访问得到
    yeshang
        6
    yeshang  
    OP
       2017-11-15 17:14:04 +08:00
    @boboliu 太高深, 小白不懂. 可否请教一下?
    gouchaoer
        7
    gouchaoer  
       2017-11-15 17:15:04 +08:00
    浏览器不会暴露你 pc 的 mac 啦,结论就是只能部署 https,然后签发一个你私有的证书,哪台电脑要访问这个证书就必须安装证书
    yeshang
        8
    yeshang  
    OP
       2017-11-15 17:15:26 +08:00
    yeshang
        9
    yeshang  
    OP
       2017-11-15 17:16:37 +08:00
    @gouchaoer 估计应该是这样操作了. 浏览器可以操作让它暴露 mac
    xia0pia0
        10
    xia0pia0  
       2017-11-15 17:17:20 +08:00
    SSL 双向认证。
    tabris17
        11
    tabris17  
       2017-11-15 17:19:30 +08:00   ❤️ 1
    浏览器指纹

    随便找了一篇文章 https://nanshihui.github.io/2017/03/21/browser-fingerprint/
    zencoding
        12
    zencoding  
       2017-11-15 17:20:26 +08:00
    realpg
        13
    realpg  
       2017-11-15 17:42:26 +08:00
    nginx 效验客户端证书
    手动去给客户机装证书 标记私钥不可导出
    owenliang
        14
    owenliang  
       2017-11-15 17:53:21 +08:00
    IP 白名单有啥复杂的。
    cxbig
        15
    cxbig  
       2017-11-15 18:07:43 +08:00 via iPad
    1. 加 Basic Auth,配合 fail2ban 使用
    2. 自签 SSL 文件
    gouchaoer
        16
    gouchaoer  
       2017-11-15 18:30:13 +08:00
    @zencoding 这个不是用在这里的
    cabing
        17
    cabing  
       2017-11-15 18:39:27 +08:00
    https。或者额外的 cookie

    也可以从业务角度解决问题

    如果你第一次登陆成功,在本地写一个复杂的额外的 cookie。设置永久的 cookie。你再把 cookie 写到服务端

    以后登陆的时候 : 登陆验证+额外 cookie (和你本机的一致)。

    这样可以在你不清楚浏览器 cookie 的情况下,从业务的角度实现只在一个电脑上登陆。
    tuzhis
        18
    tuzhis  
       2017-11-15 18:48:36 +08:00 via iPhone
    加密狗……
    boboliu
        19
    boboliu  
       2017-11-15 19:02:02 +08:00 via Android
    就算用 bing 应该都搜到 Nginx 的文档了吧: https://nginx.org/en/docs/http/ngx_http_ssl_module.html

    以及如果真的要确保安全性较高,不如开发个代理隧道访问。。。ls 的加密狗 /智能卡也是个可行的方案
    checgg
        20
    checgg  
       2017-11-15 19:03:17 +08:00   ❤️ 1
    代理 ip 不行吗。。。。
    rooftop64
        21
    rooftop64  
       2017-11-15 19:57:52 +08:00 via Android
    直接限制 IP 网段,需要访问的电脑先 VPN 到这个网段,这样可以吗?
    16500682
        22
    16500682  
       2017-11-15 20:03:35 +08:00 via Android
    ssl 双向认证+1
    polymerdg
        23
    polymerdg  
       2017-11-15 20:08:38 +08:00
    限制内网访问 SS 挂代理
    kenX
        24
    kenX  
       2017-11-15 20:53:10 +08:00
    密码不能只限制在一台电脑上访问,ssl 就可以?证书不是也可以导出吗?
    用硬件证书?
    LINAICAI
        25
    LINAICAI  
       2017-11-15 21:41:46 +08:00 via iPhone
    ssh 禁止密码登录,使用公钥登录
    asukaceres
        26
    asukaceres  
       2017-11-15 22:23:47 +08:00
    client cert auth
    GreatHumorist
        27
    GreatHumorist  
       2017-11-15 22:37:19 +08:00 via iPhone
    组网用 windows 域认证?
    sunsh2017
        28
    sunsh2017  
       2017-11-16 00:29:20 +08:00 via Android
    浏览器指纹
    lsido
        29
    lsido  
       2017-11-16 00:48:53 +08:00 via iPhone
    没想到特别好的方案,但有俩下等方法

    1.通过 MAC 地址

    2.加密狗 (淘宝几十块钱)
    msg7086
        30
    msg7086  
       2017-11-16 03:36:05 +08:00
    @kenX 可以标记为不可导出。当然硬件证书也是可以的。
    anuan
        31
    anuan  
       2017-11-16 04:50:14 +08:00   ❤️ 1
    最简单的办法
    域名不绑 ip 也就是不设置 dns
    在本地 hosts 写上 ip 就行了
    sunsulei
        32
    sunsulei  
       2017-11-16 09:29:39 +08:00
    @anuan #31 #31 思路清奇.
    kenX
        33
    kenX  
       2017-11-16 10:29:50 +08:00
    @msg7086 学习了
    czk1997
        34
    czk1997  
       2017-11-17 06:11:37 +08:00
    机器码什么的肯定获取不到……
    加密狗(硬件证书) 或者域可控一点
    @anuan #31 思路清奇
    aksoft
        35
    aksoft  
       2017-11-24 08:58:28 +08:00
    vb 内嵌浏览器:加几个 header,cookie 啥的,vb 可以获取机器码
    xytest
        36
    xytest  
       2019-04-04 09:31:29 +08:00
    楼主 这个问题你是怎么解决的 能传授以下经验么 现在我也卡在这里了
    yeshang
        37
    yeshang  
    OP
       2019-04-04 11:22:48 +08:00 via Android
    @xytest 没解决。没管了
    xytest
        38
    xytest  
       2019-04-04 11:26:35 +08:00
    @yeshang 嗯嗯,我在去找找有没有别的思路
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1025 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 19:53 · PVG 03:53 · LAX 11:53 · JFK 14:53
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.