V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
mytry
V2EX  ›  程序员

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

  •  5
     
  •   mytry · Apr 3, 2019 · 24738 views
    This topic created in 2583 days ago, the information mentioned may be changed or developed.
    前些时候分享过一个在线代理 https://www.gk.jsproxy.tk/ ,代理后的 URL 是把原始域名“打包”在自己的子域名下。

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

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

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

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

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

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

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

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

    在网站 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
       Apr 3, 2019
    @zealot0630 重写了 SW 注册的 API,拒绝原始网站使用 SW~~~ 大部分网站的 SW 只是优化网络的,禁用了也没太大问题。
    mytry
        55
    mytry  
    OP
       Apr 3, 2019
    @no1xsyzy safari 会报这个错误,这个浏览器的 cors 模型和 chrome 不太一样,还在做兼容。。。
    buhi
        56
    buhi  
       Apr 3, 2019
    楼主这个一旦被墙盯上基本没有任何匿名能力吧, 瞬间就能被识别出是一个代理服务器, 然后秒封服务器 ip.
    no1xsyzy
        57
    no1xsyzy  
       Apr 3, 2019
    @mytry 我是 firefox ……
    auin
        58
    auin  
       Apr 3, 2019
    star,看了下确实使用的 404.html
    alfchin
        59
    alfchin  
       Apr 3, 2019 via Android
    url 敏感词,分分钟被断
    alect
        60
    alect  
       Apr 3, 2019
    目的域名考虑加密下?
    xujinkai
        61
    xujinkai  
       Apr 3, 2019
    好赞啊
    xujinkai
        62
    xujinkai  
       Apr 3, 2019
    问一下 这样的话 cookie 是不是就乱了
    hasaki1997
        63
    hasaki1997  
       Apr 3, 2019
    已经无法访问了
    mytry
        64
    mytry  
    OP
       Apr 3, 2019   ❤️ 1
    @xujinkai 重写了 document.cookie 和 http set-cookie 的实现,整个 cookie 全部由 JS 来维护(很是麻烦,页面和 SW 之间需要相互通信,还要维护过期等等等等。目前还没做完)

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

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

    感觉可以搞个浏览器的 extension,类似 adblock 使用浏览器网络 native API 那样 hook 所有流量,还能针对白名单进行本地定制流量过滤,这样就不用所有流量都经过服务器中转了,还能本地缓存页面,重复打开的页面几乎可以做到瞬间打开,因为本来就是 local cache
    zanzhz1101
        94
    zanzhz1101  
       Apr 3, 2019
    已 star,持续关注中
    goodboy886
        95
    goodboy886  
       Apr 3, 2019 via Android
    太棒了
    mytry
        96
    mytry  
    OP
       Apr 3, 2019
    @t6attack 思路正确,细节不全对。拦截请求的 Service Worker 是 404 页面创建的(创建后自动刷新),不是注入的 JS 创建的。注入的 JS 主要是模拟一些 API,当然也有拦截 AJAX、WebSocket 等调整 URL 参数~
    haobangdada
        97
    haobangdada  
       Apr 4, 2019
    电报网页版行吗? t.me/pojieapp
    tz1006
        98
    tz1006  
       Apr 4, 2019
    牛逼
    nosky
        99
    nosky  
       Apr 4, 2019 via Android
    500,是我来晚了吗
    snoopyxdy1
        100
    snoopyxdy1  
       Apr 4, 2019
    很有意思,思路很新颖,但是对使用者不是很安全吧
    1  2  
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3825 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 228ms · UTC 10:27 · PVG 18:27 · LAX 03:27 · JFK 06:27
    ♥ Do have faith in what you're doing.