给之前的“在线代理”设计了一种新的 URL 模式,看看会不会识别成钓鱼网站 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
mytry
V2EX    程序员

给之前的“在线代理”设计了一种新的 URL 模式,看看会不会识别成钓鱼网站

  •  5
     
  •   mytry 2019-04-03 09:52:31 +08:00 23916 次点击
    这是一个创建于 2385 天前的主题,其中的信息可能已经有所发展或是发生改变。
    前些时候分享过一个在线代理 https://www.gk.jsproxy.tk/ ,代理后的 URL 是把原始域名“打包”在自己的子域名下。

    这种方案虽然实现简单,但有很多缺点。例如需要大量 DNS 查询,HTTPS 子域名数量有限,等等。

    最近尝试了一种新的 URL 模式,把原始 URL 打包在路径里,这样域名始终只有一个。例如:

    https://zjcqoo.github.io/-----https://www.google.com

    当然这个演示目前还不完善,主要看看这种 URL 模式会不会被识别成钓鱼网站。

    (目前换成了新加坡轻量云,貌似速度没有之前的快~)

    (猜猜 github pages 为什么能显示任意路径的内容~)
    第 1 条附言    2019-04-03 13:44:05 +08:00
    老版本(前者)香港节点没开 BBR 比新版本(后者)新加坡节点 BBR 快一些,有没有感觉到~
    第 2 条附言    2019-04-07 11:04:05 +08:00
    https://zjcqoo.github.io/-----https://www.google.com 目前在测试改进中,推荐用隐身模式访问,避免 SW 缓存的问题。
    第 3 条附言    2019-04-09 19:48:50 +08:00
    Youtube 搜索报错的问题终于解决了~
    第 4 条附言    2019-04-11 21:04:50 +08:00
    访问 alicdn、zhihu、jianshu 等 CDN 可以直接走本地请求了,因为它们都支持 CORS 而且允许 referer 为空。可以给我的代理节省一些流量,哈哈哈。
    第 5 条附言    2019-04-23 13:28:40 +08:00
    源码已更新: t/557870
    123 条回复    2019-07-01 10:39:39 +08:00
    1  2  
    Amcrow
        1
    Amcrow  
       2019-04-03 10:04:46 +08:00
    给个 telegram 让我联系你
    matsuz
        2
    matsuz  
       2019-04-03 10:12:49 +08:00
    github pages 那个似乎不支持 Safari ?
    ccccccc
        3
    ccccccc  
       2019-04-03 10:17:44 +08:00
    (猜猜 github pages 为什么能显示任意路径的内容~)

    404.html ?
    yidinghe
        4
    yidinghe  
       2019-04-03 10:17:50 +08:00
    为了避免被识别出敏感词,最好用 Base64 再编码一道。另外 web 代理现在貌似不吃香。
    angryRabbit
        5
    angryRabbit  
       2019-04-03 10:35:00 +08:00
    太厉害了,还能放视频。赞赞赞
    为什么非要用 ServiceWorker ?直接用 script 引入 x.js 不行么?
    CallMeReznov
        6
    CallMeReznov  
       2019-04-03 10:36:00 +08:00
    我记得 SS 没出来之前甚至为屁嗯都没流行前,有那种页面跳转的代理,是不是类似这种?
    Amcrow
        7
    Amcrow  
       2019-04-03 10:42:09 +08:00
    IP:149.1*9.6*.171
    MAC:00:**:3e:**:05:41

    你联系我吧,提个 bug
    Amcrow
        8
    Amcrow  
       2019-04-03 10:43:49 +08:00   1
    tg:KzEgOTI5NDMwNTEyOQ==
    mkstring
        9
    mkstring  
       2019-04-03 10:54:59 +08:00
    首先感谢这么好的工具,之前用过一段时间 jsproxy,太好用了!
    jsproxy 不维护了吗,一直在 loading...,页面一直在跳转。
    ClarkAbe
        10
    ClarkAbe  
       2019-04-03 10:56:25 +08:00 via iPhone
    先献上小星星为敬
    mytry
        11
    mytry  
    OP
       2019-04-03 11:02:56 +08:00
    @mkstring 用隐身模式打开试试。jsproxy 最没怎么更新,主要在研究一些新方案,过几天这个新版本会更新 github 上。
    CallMeReznov
        12
    CallMeReznov  
       2019-04-03 11:05:27 +08:00
    LZ,我假设你这这个程序默认换成静默跳转,也不会弹出证书错误,做钓鱼网站会不会比较吊?
    mytry
        13
    mytry  
    OP
       2019-04-03 11:06:38 +08:00
    @angryRabbit 不用 Service Worker 没法统一拦截页面产生的请求,需要把每个 js/css/html 资源里的 url 逐个替换,效率比较低。
    mytry
        14
    mytry  
    OP
       2019-04-03 11:10:16 +08:00
    @yongxa 服务器远程桌面那个吗- -
    mytry
        15
    mytry  
    OP
       2019-04-03 11:13:15 +08:00
    @yidinghe 理论上 Web 代理可以比 VPN/SS 会快很多,因为可以在 7 层加速。这个版本以后加上本地 CDN 加速可以秒开常用的国外网站~
    azh7138m
        16
    azh7138m  
       2019-04-03 11:13:51 +08:00
    ksedz
        17
    ksedz  
       2019-04-03 11:15:57 +08:00
    太强了!
    mytry
        18
    mytry  
    OP
       2019-04-03 11:16:23 +08:00
    @azh7138m 还没做完,一大堆功能没实现。。。现在只是测下域名会不会被封~
    a4854857
        19
    a4854857  
       2019-04-03 11:20:14 +08:00   1
    速度好快啊
    hafuhafu
        20
    hafuhafu  
       2019-04-03 11:22:04 +08:00
    有意思啊!
    Amcrow
        21
    Amcrow  
       2019-04-03 11:24:35 +08:00
    @mytry 就你发的这个项目的
    greatx
        22
    greatx  
       2019-04-03 11:30:13 +08:00
    Firefox 内容损坏错误
    rampagechopper
        23
    rampagechopper  
       2019-04-03 11:31:40 +08:00
    觉得还不错
    rizon
        24
    rizon  
       2019-04-03 11:34:40 +08:00
    我想知道哪里有基于 js 的代理的源码,可以拿来自己部署?
    460881773
        25
    460881773  
       2019-04-03 11:49:50 +08:00
    优秀 点赞
    zdyx123
        26
    zdyx123  
       2019-04-03 12:08:58 +08:00
    chrome 正常
    Firefox 内容损坏错误
    ho121
        27
    ho121  
       2019-04-03 12:19:01 +08:00 via Android
    这根本不新
    nicoljiang
        28
    nicoljiang  
    PRO
       2019-04-03 12:27:32 +08:00
    很久很久以前( 200x 年)就有这个模式了啊。。。
    lamada
        29
    lamada  
       2019-04-03 12:27:37 +08:00
    点赞!
    Lothar
        30
    Lothar  
       2019-04-03 12:44:27 +08:00
    别的不说,速度是真的快......
    chinvo
        31
    chinvo  
       2019-04-03 12:47:24 +08:00
    FetchEvent.respondWith received an error: RangeError: Status must be between 200 and 599
    gzxu
        32
    gzxu  
       2019-04-03 12:52:00 +08:00 via Android
    牛逼牛逼,已 star
    mitnick
        33
    mitnick  
       2019-04-03 12:56:10 +08:00
    完美!点赞
    feikeq
        34
    feikeq  
       2019-04-03 13:10:58 +08:00
    这个速度蛮快的!赞
    opengps
        35
    opengps  
       2019-04-03 13:25:40 +08:00 via Android
    容易被泛滥使用,我的短网址被人恶意操作,腾讯聊天窗口里红名了一个月
    li02
        36
    li02  
       2019-04-03 13:38:03 +08:00
    good job!
    怎么能部署到自己的服务器上?
    mytry
        37
    mytry  
    OP
       2019-04-03 13:38:27 +08:00
    @yongxa telegram @zjcqoo
    x86
        38
    x86  
       2019-04-03 13:40:30 +08:00
    牛逼,响应速度真的快
    bertonzh
        40
    bertonzh  
       2019-04-03 13:42:59 +08:00
    还能这么玩???
    changwei
        41
    changwei  
       2019-04-03 13:53:00 +08:00 via Android
    这个不就是 glype 的思路嘛?以前 openshift v2 免费的时候,好多人在它上面安装 glype 当 为皮嗯 用
    mytry
        42
    mytry  
    OP
       2019-04-03 14:02:57 +08:00
    @changwei 在线代理其实都类似。这个的特点是后端 CPU 开销极低,前端有 API 虚拟化。
    asly
        43
    asly  
       2019-04-03 14:15:21 +08:00
    速度很快,不过火狐好像打开有问题
    Liudong1999
        44
    Liudong1999  
       2019-04-03 14:19:32 +08:00
    我靠!好快!赞啊,兄弟!!!
    pyteam
        45
    pyteam  
       2019-04-03 14:28:35 +08:00
    非常不错,支持继续更新完善!
    hpj
        46
    hpj  
       2019-04-03 14:34:08 +08:00
    好一个反向代理...
    xiangyuecn
        47
    xiangyuecn  
       2019-04-03 14:40:45 +08:00
    又是你,反手就是一个赞。就是不知道会不会被请喝茶
    Schalkiii
        48
    Schalkiii  
       2019-04-03 14:57:36 +08:00
    相当棒
    mytry
        49
    mytry  
    OP
       2019-04-03 15:00:33 +08:00
    @asly 目前只支持最新版 chrome。主要是 firefox、safari 调试 Service Worker 太麻烦了。。。
    ragnaroks
        50
    ragnaroks  
       2019-04-03 15:00:55 +08:00
    有点意思
    zealot0630
        51
    zealot0630  
       2019-04-03 15:17:24 +08:00 via Android
    对于已经使用了 sw 的网站,还能正常代理么?
    binux
        52
    binux  
       2019-04-03 15:26:10 +08:00
    Service Worker 原来可以这么用,有意思
    no1xsyzy
        53
    no1xsyzy  
       2019-04-03 15:38:56 +08:00
    内容损坏错误

    在网站 https://zjcqoo.github.io/-----https://www.google.com 遇到一个无法修复的网络协议违规。

    由于检测到在数据传输过程中存在错误,无法显示您正要查看的页面。

    建议向此网站的管理员反馈这个问题。




    完全没见过的错误呢


    控制台:

    导航至 https://zjcqoo.github.io/-----https://www.google.com
    [jsproxy] sw inited sw.js:257:1
    无法载入 ‘ https://zjcqoo.github.io/-----https://www.google.com ’。某个 ServiceWorker 传递了 promise 给 FetchEvent.respondWith(),因下列错误被拒绝:‘ RangeError: Invalid response status code.’。x.js line 144 > eval:50:10
    mytry
        54
    mytry  
    OP
       2019-04-03 15:43:45 +08:00
    @zealot0630 重写了 SW 注册的 API,拒绝原始网站使用 SW~~~ 大部分网站的 SW 只是优化网络的,禁用了也没太大问题。
    mytry
        55
    mytry  
    OP
       2019-04-03 15:44:18 +08:00
    @no1xsyzy safari 会报这个错误,这个浏览器的 cors 模型和 chrome 不太一样,还在做兼容。。。
    buhi
        56
    buhi  
       2019-04-03 15:48:14 +08:00
    楼主这个一旦被墙盯上基本没有任何匿名能力吧, 瞬间就能被识别出是一个代理服务器, 然后秒封服务器 ip.
    no1xsyzy
        57
    no1xsyzy  
       2019-04-03 15:48:20 +08:00
    @mytry 我是 firefox ……
    liuxey
        58
    liuxey  
       2019-04-03 15:52:08 +08:00
    star,看了下确实使用的 404.html
    alfchin
        59
    alfchin  
       2019-04-03 15:53:25 +08:00 via Android
    url 敏感词,分分钟被断
    alect
        60
    alect  
       2019-04-03 15:53:43 +08:00
    目的域名考虑加密下?
    xujinkai
        61
    xujinkai  
       2019-04-03 16:04:50 +08:00
    好赞啊
    xujinkai
        62
    xujinkai  
       2019-04-03 16:09:12 +08:00
    问一下 这样的话 cookie 是不是就乱了
    hasaki1997
        63
    hasaki1997  
       2019-04-03 16:22:46 +08:00
    已经无法访问了
    mytry
        64
    mytry  
    OP
       2019-04-03 16:23:02 +08:00   1
    @xujinkai 重写了 document.cookie 和 http set-cookie 的实现,整个 cookie 全部由 JS 来维护(很是麻烦,页面和 SW 之间需要相互通信,还要维护过期等等等等。目前还没做完)

    本来想用 path 隔离不同网站的 cookie,但那样所有 cookie 都在一个域下,多了以后请求头会爆掉。。。
    mytry
        65
    mytry  
    OP
       2019-04-03 16:23:35 +08:00
    @hasaki1997 刚刚重启了下~
    mytry
        66
    mytry  
    OP
       2019-04-03 16:27:50 +08:00
    @zdyx123
    @chinvo
    @asly
    @no1xsyzy
    现在支持 FireFox、Safair 了~ 这两个坑爹的浏览器 CORS 模型还不一样。(具体是 HTTP 返回头配了 access-control-expose-headers: * 浏览器仍不能读取所有头)
    zhouyg
        67
    zhouyg  
       2019-04-03 16:35:49 +08:00
    很酷,我也回头研究下具体的实现原理,有什么参考资料吗?
    yibinhp
        68
    yibinhp  
       2019-04-03 16:51:28 +08:00
    厉害
    Felldeadbird
        69
    Felldeadbird  
       2019-04-03 16:56:12 +08:00
    刚才测试了文件下载,貌似连文件下载也走代理了? 这样会不会比酸酸乳 更好使?
    Yangz
        70
    Yangz  
       2019-04-03 16:57:13 +08:00
    好厉害呀!感谢感谢~
    mytry
        71
    mytry  
    OP
       2019-04-03 16:59:20 +08:00
    @zhouyg 熟悉 Service Worker 就可以了
    mytry
        72
    mytry  
    OP
       2019-04-03 17:01:43 +08:00
    @Felldeadbird 只是浏览网页的话,可以比流量层代理更快(当然目前还没做本地加速,过段时间上了这功能之后可以几十 ms 打开 google、youtube 首页~)
    wazon
        73
    wazon  
       2019-04-03 17:12:21 +08:00   1
    这个想法很有创意,楼主的网站有点担心被人用烂。
    不过,楼主的代码完善后,如果给出教程方便大家自建的话,相信会给工作和生活带来不少便利。
    (另外,proxybest.xyz 的 whois 不开隐私保护么)
    Hayek
        74
    Hayek  
       2019-04-03 17:17:40 +08:00
    @alfchin 请问 HTTPS 下, 域名可以识别, 后面的 path 如何识别名敢刺呢?
    mytry
        75
    mytry  
    OP
       2019-04-03 17:22:27 +08:00   1
    @wazon 以后 API 接口可能不用域名了,直接用 IP 地址的形式。
    mytry
        76
    mytry  
    OP
       2019-04-03 17:24:49 +08:00
    @wazon 之前注册时忘了开保护。。。多谢提醒。
    wazon
        77
    wazon  
       2019-04-03 17:30:25 +08:00
    @mytry 用 IP 的话,免费证书还能搞到么?
    peyppicp
        78
    peyppicp  
       2019-04-03 17:33:04 +08:00
    好顶赞 已 star
    Rwing
        79
    Rwing  
       2019-04-03 17:33:43 +08:00
    不错,主域被识别成钓鱼的话,后面怎么换都没用吧?
    mytry
        80
    mytry  
    OP
       2019-04-03 17:36:02 +08:00
    @wazon 试了下 sslforfree 不让签发 IP 证书。。。还是换之前的免费域名算了~
    RyanOne
        81
    RyanOne  
       2019-04-03 17:48:48 +08:00
    支持一下
    qfdk
        82
    qfdk  
    PRO
       2019-04-03 18:04:13 +08:00 via iPhone
    路过 来学习下新的黑科技
    paomo547
        83
    paomo547  
       2019-04-03 18:17:48 +08:00
    厉害,速度不错
    my3157
        84
    my3157  
       2019-04-03 18:33:41 +08:00
    手贱, search 了 xxxx 在办公室还点开了第一个

    :doge:
    phpfpm
        85
    phpfpm  
       2019-04-03 18:45:04 +08:00
    所以有没有可能数据节点用 ss 协议传递。。
    mytry
        86
    mytry  
    OP
       2019-04-03 18:53:43 +08:00
    @phpfpm 不可能~ 倒是可以试试 WebRTC
    1072512118
        87
    1072512118  
       2019-04-03 19:01:51 +08:00
    有点意思的,帮顶一下
    zerozz
        88
    zerozz  
       2019-04-03 19:31:11 +08:00
    mark,打开速度很快
    IdJoel
        89
    IdJoel  
       2019-04-03 20:23:46 +08:00
    楼主 nb 不过 QQ 显示已经被投诉不能打开 微信照常可以使用
    lawler
        90
    lawler  
       2019-04-03 20:24:17 +08:00
    试了下 p***hub,楼主好人。
    t6attack
        91
    t6attack  
       2019-04-03 20:25:01 +08:00
    @nicoljiang @CallMeReznov
    以前那种在线代理,是简单的在服务端拉取页面,返回给浏览器。这样只支持页面,而页面内的所有元素,都是不走代理的。。要么就是分析修改页面内容,给页面中的每个 src/herf 套上一层代理。这种处理方式极其低效、不完善。
    现在这种新的解决方案,是在页面头部注入一个 js 文件,hook 整个页面所产生的网络请求。这样就可以让页面加载后的所有请求都走代理,包括视频、图片、后续的 ajax 请求。。
    不知道我理解的对不对。
    nicoljiang
        92
    nicoljiang  
    PRO
       2019-04-03 20:36:58 +08:00
    @t6attack 嗯 是有个 hook 但本质没变,思路是一样的,但是现代浏览器让其得意实现的方法更简单。
    mywaiting
        93
    mywaiting  
       2019-04-03 20:56:39 +08:00
    ServiceWorker 的转发依赖浏览本地实现,比浏览器 extension 的 native API 弱很多啊

    感觉可以搞个浏览器的 extension,类似 adblock 使用浏览器网络 native API 那样 hook 所有流量,还能针对白名单进行本地定制流量过滤,这样就不用所有流量都经过服务器中转了,还能本地缓存页面,重复打开的页面几乎可以做到瞬间打开,因为本来就是 local cache
    zanzhz1101
        94
    zanzhz1101  
       2019-04-03 21:06:59 +08:00
    已 star,持续关注中
    goodboy886
        95
    goodboy886  
       2019-04-03 21:11:57 +08:00 via Android
    太棒了
    mytry
        96
    mytry  
    OP
       2019-04-03 22:58:56 +08:00
    @t6attack 思路正确,细节不全对。拦截请求的 Service Worker 是 404 页面创建的(创建后自动刷新),不是注入的 JS 创建的。注入的 JS 主要是模拟一些 API,当然也有拦截 AJAX、WebSocket 等调整 URL 参数~
    haobangdada
        97
    haobangdada  
       2019-04-04 00:55:55 +08:00
    电报网页版行吗? t.me/pojieapp
    tz1006
        98
    tz1006  
       2019-04-04 06:55:53 +08:00
    牛逼
    nosky
        99
    nosky  
       2019-04-04 08:35:25 +08:00 via Android
    500,是我来晚了吗
    snoopyxdy1
        100
    snoopyxdy1  
       2019-04-04 08:50:27 +08:00
    很有意思,思路很新颖,但是对使用者不是很安全吧
    1  2  
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1388 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 35ms UTC 17:02 PVG 01:02 LAX 10:02 JFK 13:02
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86