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

前端检测用户是否使用 HTTP/SOCK5 代理的方法

  •  1
     
  •   shiji · 2018-03-29 12:32:33 +08:00 · 4201 次点击
    这是一个创建于 2468 天前的主题,其中的信息可能已经有所发展或是发生改变。
    第 1 条附言  ·  2018-03-29 13:13:45 +08:00
    原理是这样的:

    没用代理:


    用了 HTTP 或者 SOCKS 代理:
    第 2 条附言  ·  2018-03-29 13:52:27 +08:00
    现在看来移动端都不准。

    另外这个只是检测是否使用 HTTP/SOCK5. 没说能检测 \/PN 或者 $$.
    27 条回复    2018-03-29 23:07:04 +08:00
    klren0312
        1
    klren0312  
       2018-03-29 12:40:31 +08:00
    可以可以
    7654
        2
    7654  
       2018-03-29 12:43:40 +08:00
    完蛋~~~
    Lycnir
        3
    Lycnir  
       2018-03-29 12:50:20 +08:00
    js 获取本地数据和代理数据进行对比?
    winterbells
        4
    winterbells  
       2018-03-29 13:07:20 +08:00
    我记得有一家卖 steam 游戏的网站就检测了是否用代理,忘记是哪个了
    tony1016
        5
    tony1016  
       2018-03-29 13:12:46 +08:00
    false 嘛
    l12ab
        6
    l12ab  
       2018-03-29 13:13:36 +08:00 via iPhone
    打开小火箭,即使直连模式,也返回 true
    zjp
        7
    zjp  
       2018-03-29 13:13:43 +08:00 via Android
    挂 $$ 一样 false …
    shiji
        8
    shiji  
    OP
       2018-03-29 13:17:44 +08:00
    @l12ab 因为直连的时候也会经过本地的 Socks 代理呀。
    LosLord
        9
    LosLord  
       2018-03-29 13:19:19 +08:00 via Android
    手机打开是 true
    wsy2220
        10
    wsy2220  
       2018-03-29 13:22:49 +08:00
    看来很有必要把性能 API 禁止掉
    evagreenworking
        11
    evagreenworking  
       2018-03-29 13:23:33 +08:00
    把 navigation timing api 禁了就可以了 普通用户浏览不需要开这玩意
    batman2010
        12
    batman2010  
       2018-03-29 13:31:41 +08:00 via iPhone
    不准
    zhuanzh
        13
    zhuanzh  
       2018-03-29 13:34:02 +08:00 via Android
    开了也 false 呀
    iAcn
        14
    iAcn  
       2018-03-29 13:35:08 +08:00 via Android   ❤️ 2
    Android 端数据连接测试为 True,实际没开代理
    wuzhizhemu569
        15
    wuzhizhemu569  
       2018-03-29 13:37:45 +08:00
    手机无论如何都是 false,这个原理可靠吗?
    blless
        16
    blless  
       2018-03-29 13:39:57 +08:00 via Android
    真正透明代理都是路由层做的 怎么可能检测的出
    loading
        17
    loading  
       2018-03-29 13:41:14 +08:00 via iPhone
    在路由上,我不信能检查出来。
    sciooga
        18
    sciooga  
       2018-03-29 13:43:48 +08:00
    思路是判读是否有 dns 查询,如果没有就判定为代理...
    doubleflower
        19
    doubleflower  
       2018-03-29 14:19:03 +08:00
    在我 pc 上挺准的
    123s
        20
    123s  
       2018-03-29 15:06:17 +08:00
    我用自动代理,它也检查不到
    Removable
        21
    Removable  
       2018-03-29 15:09:03 +08:00
    mark 一下,回去试试看
    sb
        22
    sb  
       2018-03-29 15:57:09 +08:00
    我用自动代理,它也检查不到+1
    mcone
        23
    mcone  
       2018-03-29 16:28:30 +08:00
    手机上不是很准……
    VYSE
        24
    VYSE  
       2018-03-29 16:32:05 +08:00
    一个思路,比如某鱼 flash 播放器连接弹幕服务器走的纯 socket 不 care 浏览器 proxy,假如其网络不挂代理就不通 socket 是可以依靠 flash 不通 html 通来判定开启浏览器 proxy.
    当然 iptables 或 tunnel 这种无解
    BTW,我用了自己的 DNS,LZ 方法测试永远都是 true
    Endward
        25
    Endward  
       2018-03-29 16:41:48 +08:00
    PC 上不准
    mario85
        26
    mario85  
       2018-03-29 21:46:44 +08:00
    路由层代理检测不出来+1
    no1xsyzy
        27
    no1xsyzy  
       2018-03-29 23:07:04 +08:00
    Chrome 强制了 DNS Forward 才是重点吧
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1029 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 22:11 · PVG 06:11 · LAX 14:11 · JFK 17:11
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.