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

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

  •  5
     
  •   mytry · 2019-04-03 09:52:31 +08:00 · 22974 次点击
    这是一个创建于 2073 天前的主题,其中的信息可能已经有所发展或是发生改变。
    前些时候分享过一个在线代理 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
    123 条回复    2019-07-01 10:39:39 +08:00
    1  2  
    yongxa
        1
    yongxa  
       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 没出来之前甚至为屁嗯都没流行前,有那种页面跳转的代理,是不是类似这种?
    yongxa
        7
    yongxa  
       2019-04-03 10:42:09 +08:00
    IP:149.1*9.6*.171
    MAC:00:**:3e:**:05:41

    你联系我吧,提个 bug
    yongxa
        8
    yongxa  
       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
    有意思啊!
    yongxa
        21
    yongxa  
       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  
       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  
       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  
       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   ·   实用小工具   ·   3287 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 12:39 · PVG 20:39 · LAX 04:39 · JFK 07:39
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.