关于 ilidilid 这个 b 站镜像网站 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
deepred
V2EX    程序员

关于 ilidilid 这个 b 站镜像网站

  •  
  •   deepred 2018-02-20 21:29:01 +08:00 29878 次点击
    这是一个创建于 2792 天前的主题,其中的信息可能已经有所发展或是发生改变。

    ilidilid这个 b 站镜像网站,是怎么做到在 b 站登录后,该网站也同步更新登录状态的?

    很奇怪的是 ilidilid 域名下的 cookie 和 b 站的 cookie 基本是一模一样的,它是怎么获取到的?

    看了下源码,b 站是有做防 iframe 的,所以 ilidilid 并不是简单的嵌套 iframe。

    80 条回复    2019-03-01 09:38:42 +08:00
    janxin
        1
    janxin  
       2018-02-20 21:41:32 +08:00
    deepred
        2
    deepred  
    OP
       2018-02-20 21:45:31 +08:00
    dfly0603
        3
    dfly0603  
       2018-02-20 21:49:40 +08:00 via Android
    据说 nginx 反代是可以跨站读取 cookies 的?
    不知道哪儿看得文档里说的,错了轻拍
    Va1n3R
        4
    Va1n3R  
       2018-02-20 21:52:36 +08:00   1
    我以为是克隆的那种,没想到还真的是镜像..................说不定人家只是反向代理?
    ljy2345
        5
    ljy2345  
       2018-02-20 21:53:10 +08:00
    为什么是倒的。。。
    dfly0603
        6
    dfly0603  
       2018-02-20 21:55:22 +08:00 via Android
    刚看了下,似乎是 ilidilid.com/bilibili 负责反代,然后 ilidilid 用 iframe 镜像?
    对这方面不太熟悉
    Event
        7
    Event  
       2018-02-20 22:06:32 +08:00
    @dfly0603 反代的话在 b 登录后不会传递 cookie 给 i 的吧。。。
    要么是 b 自己的人干的...
    Willjim
        8
    Willjim  
       2018-02-20 22:12:03 +08:00 via Android
    何不换一个思路,有可能就是 B 站自己弄的一个镜像站呢。(滑稽)

    不过查了一下服务器在阿里云 BGP 数据中心,而且域名是在 2014 年注册的。并且首页那个拜年祭的网页并没有被镜像,所以有可能楼上说的对,先反代,然后再镜像。
    Angdo
        9
    Angdo  
       2018-02-20 22:20:21 +08:00
    反代 很多跨域禁止的错误信息 cookie 也是 bilibili
    ermao
        10
    ermao  
       2018-02-20 22:22:56 +08:00
    打开了新世界的大门。。。
    best1a
        11
    best1a  
       2018-02-20 22:26:10 +08:00
    deepred
        12
    deepred  
    OP
       2018-02-20 22:34:25 +08:00
    @dfly0603 我试了下 nginx 反代理
    ```
    location /bili {
    proxy_pass http://www.bilibili.com/;
    }
    ```

    然后 1.html 页面嵌入
    ```
    <iframe src="http://www.v2ex.com/bili" frameborder="0" height="100%"></iframe>
    ```

    由于 b 站是做过防 iframe 处理的,所以 1.html 加载完成后,是直接跳转到 b 站的
    Shura
        13
    Shura  
       2018-02-20 22:35:23 +08:00
    真的是镜像啊
    xider
        14
    xider  
       2018-02-20 22:42:00 +08:00
    Infernalzero
        15
    Infernalzero  
       2018-02-20 22:48:08 +08:00
    nginx 有个 proxy_cookie_domain 设置可以替换掉 cookie 的域,反代一般都要设置这个的
    Les1ie
        16
    Les1ie  
       2018-02-20 23:05:10 +08:00
    似乎还不止 ilidilid 这个网站,
    ![Snipaste_2018-02-20_23-03-50.png]( https://i.loli.net/2018/02/20/5a8c38fc7106a.png)

    打开了新世界的大门
    zuolan
        17
    zuolan  
       2018-02-20 23:14:26 +08:00
    hhh,打开新世界,我不认识汉字了,真*镜像站点。
    Biwood
        18
    Biwood  
       2018-02-20 23:24:52 +08:00
    B 站居然没做防 iframe 嵌套?
    murmur
        19
    murmur  
       2018-02-20 23:27:51 +08:00
    @dfly0603 那个微博发了个聊天记录说貌似真的是 b 站员工无聊搞的
    @Biwood 首页当然做了,但是我也不知道为啥更改 top 的 location 地址栏没变
    murmur
        20
    murmur  
       2018-02-20 23:29:13 +08:00
    @Biwood 顺便提一下,b 站不仅做了防嵌套,当你 iframe 嵌入的时候他的服务器会记录日志
    所以你说 b 站不知道有人在嵌他么
    一开始我以为一个手游坟场也没时间管这些
    xavierskip
        21
    xavierskip  
       2018-02-20 23:49:16 +08:00   1
    连视频都是镜像播放的。。。。
    dtysky
        22
    dtysky  
       2018-02-20 23:52:09 +08:00 via Android
    内部人员私下维护的……
    mizuhashi
        23
    mizuhashi  
       2018-02-20 23:57:48 +08:00
    用户信息都是用 jsonp 请求 data.bilibili.com 来的,ilidilid 那个应该只是个静态站点
    nmdx
        24
    nmdx  
       2018-02-20 23:59:37 +08:00 via Android
    @xavierskip 视频不是镜像的啊。。。我用的手机。。难道 flash 加了 buff?
    jin5354
        25
    jin5354  
       2018-02-21 00:06:57 +08:00
    dilidili 域下面根本就没 cookie 啊。。
    随便看看,B 站前后端分离做的挺干净的,登录数据好像在 http://api.bilibili.com/x/web-interface/nav 接口,这个反代啊又没有反代接口,接口还是走 bilibili 域的,那之前的 cookie 直接用就行了呗,没啥操作
    deepred
        26
    deepred  
    OP
       2018-02-21 01:33:16 +08:00
    TANKING
        27
    TANKING  
       2018-02-21 07:14:18 +08:00 via iPhone   2
    这个应该很简单吧。用 php 的 file_get_content("http://www.bilibili.com");就可以获取页面了,不需要 iframe
    jin5354
        28
    jin5354  
       2018-02-21 08:11:01 +08:00
    @deepred cookie 的 domain 属性是域
    deepred
        29
    deepred  
    OP
       2018-02-21 09:27:42 +08:00 via iPad
    @jin5354 那个 domain 是 ilidilid 设置的吧,如果 ilidilid 网站下没有 cookie,登陆 ilidilid,chrome 控制台是看不到 cookie 的
    jin5354
        30
    jin5354  
       2018-02-21 10:06:16 +08:00 via iPhone
    @deepred 你需要补一些基础知识。。
    1. cookie 跨域设置有限,domain 为 b 站域的 cookie 肯定是之前 b 站所设置的,不会是 d 站设置的,你上 b 站对比下两者的 cookie 连过期时间都一样,就是同一份
    2. chrome 控制台这里的展示只是一种组织形式,左边是 document,这个 document 下属的所有 nest frame 和 resource 用到的 cookie 都列出来了,cookie 的所属域只看 domain 属性就够了,见 https://developers.google.com/web/tools/chrome-devtools/manage-data/cookies

    赶路回来上班,手机打字匆忙见谅
    PythonAnswer
        31
    PythonAnswer  
       2018-02-21 10:10:22 +08:00 via Android
    有意思啊有意思。
    K1W1
        32
    K1W1  
       2018-02-21 10:21:05 +08:00
    如果域名变成 com.ilidilid.www 就更完美了
    deepred
        33
    deepred  
    OP
       2018-02-21 10:25:43 +08:00
    @jin5354 多谢
    devotenimabi
        34
    devotenimabi  
       2018-02-21 10:28:18 +08:00 via Android
    @K1W1 不是 moc ?
    K1W1
        35
    K1W1  
       2018-02-21 10:30:05 +08:00
    @devotenimabi #34 ,新年第一个 bug
    Mondoz
        36
    Mondoz  
       2018-02-21 10:40:32 +08:00
    真镜像站,遭不住
    rrfeng
        37
    rrfeng  
       2018-02-21 11:01:46 +08:00 via Android
    标题没有镜像...
    bilibiliQQ
        38
    bilibiliQQ  
       2018-02-21 11:09:29 +08:00
    css:

    transform: scaleX(-1);
    x86
        39
    x86  
       2018-02-21 12:10:12 +08:00 via iPhone
    域名都是镜像的牛了
    AV1
        40
    AV1  
       2018-02-21 12:17:15 +08:00
    这是单点登录的一种方式吧。
    由于用户信息是异步跨域获取的,跨域请求带上的 COOKIE 是异域的 COOKIE,而非本域的 COOKIE,所以无需额外在本域再设置一个 COOKIE,而是直接共享异域的 COOKIE。
    不过这个 JSONP 不知有没有做来源过滤的限制,如果没限制,那可能有被第三方盗取的风险。
    nothiner
        41
    nothiner  
       2018-02-21 12:26:32 +08:00 via iPhone
    @K1W1 moc.ilidilid.www
    kindjeff
        42
    kindjeff  
       2018-02-21 12:32:00 +08:00
    惊人
    xavierskip
        43
    xavierskip  
       2018-02-21 12:50:41 +08:00 via Android
    @nmdx 除了 flash。
    520671
        44
    520671  
       2018-02-21 13:12:54 +08:00   1
    @nothiner mo.ilidilid.www
    youyaang
        45
    youyaang  
       2018-02-21 13:23:05 +08:00
    手机 UA 打开这个域名有惊喜
    circleee
        46
    circleee  
       2018-02-21 13:50:02 +08:00
    @K1W1 com.ilidilid 可以的!
    lrh3321
        47
    lrh3321  
       2018-02-21 14:01:22 +08:00 via Android
    有点意思
    lzvezr
        48
    lzvezr  
       2018-02-21 14:09:38 +08:00   1
    http://www.ilidilid.com/bilibili
    实际就是这个怎么拿到的 cookie
    其实没有的,所有请求还是发到了 api.bilibili.com 上,服务器没有限制的话数据就显示出来了

    不过总感觉这样好危险啊,就不会被拦截到数据吗,虽然不是什么重要的数据

    ```Javascript
    const Observer = new MutationObserver(mutatiOns=> {
    mutations.forEach(mutation => {
    mutation.addedNodes.forEach(addedNode => {
    if (addedNode.nodeName === 'SCRIPT') {
    const callback = addedNode.src.match(/callback=(.*?)&/)
    if (callback !== null) {
    const cb = callback[1]
    const cbbak = window[cb]
    window[cb] = (d) => {
    cbbak(d)
    console.log(d)
    }
    }
    }
    })
    })
    })
    Observer.observe(document.head, { childList: true })
    ```
    jin5354
        49
    jin5354  
       2018-02-21 14:55:00 +08:00   1
    @lzvezr 搜索 JSONP Hijacking
    sikariba
        50
    sikariba  
       2018-02-21 15:01:41 +08:00
    哈哈哈哈太好玩儿了
    chenset
        51
    chenset  
       2018-02-21 15:40:34 +08:00
    笑死我了...
    lzvezr
        52
    lzvezr  
       2018-02-21 15:42:55 +08:00
    @jin5354 对哦,jsonp 完全可以拿到自己的站上,何必这么麻烦
    czdpzc
        53
    czdpzc  
       2018-02-21 16:37:31 +08:00
    哈哈哈哈,真是镜像站啊...
    Hconk
        54
    Hconk  
       2018-02-21 16:43:14 +08:00 via Android
    paw
        55
    paw  
       2018-02-21 20:17:39 +08:00
    艾玛啊 真镜像站啊,点开楞了好半天感觉怎么不太对
    cherishx
        56
    cherishx  
       2018-02-21 20:27:43 +08:00 via Android
    cherishx
        57
    cherishx  
       2018-02-21 20:29:27 +08:00 via Android
    yyyyyyyhb
        58
    yyyyyyyhb  
       2018-02-21 20:35:20 +08:00   1
    我的鼠标手势都被它反过来了==
    oswuhan
        59
    oswuhan  
       2018-02-21 20:49:02 +08:00
    “请问,这个反向的 b 是怎么打出来的?”
    f2f2f
        60
    f2f2f  
       2018-02-21 20:52:02 +08:00
    网站被访问趴了么……打不开了啊
    chairuosen
        61
    chairuosen  
       2018-02-21 22:22:55 +08:00
    iframe { -webkit-animation: mirror forwards 0s; }
    dream7758522
        62
    dream7758522  
       2018-02-21 23:25:30 +08:00 via Android
    视频是正的
    czvatqin
        63
    czvatqin  
       2018-02-22 00:15:26 +08:00
    有意思...
    真镜像站..
    shintendo
        64
    shintendo  
       2018-02-22 08:42:13 +08:00
    你们仔细看,有些汉字本身是镜像的,有些只是顺序镜像了,字还是原来的字,这是为什么?
    wangxiaohao
        5
    wangxiaohao  
       2018-02-22 10:04:05 +08:00
    厉害了
    哈哈哈
    hyhy01
        66
    hyhy01  
       2018-02-22 10:15:11 +08:00
    <script type="text/Javascript">//防嵌入
    (function(){try{if(parent!=self && (parent.document.domain!=document.domain || (document.referrer && !/^http(s)?:\/\/[.\w-]+\.bilibili\.com\//i.test(document.referrer)))){throw new Error("can't be iframed");}}catch(e){window.open(location.href, "_top");}})();</script>
    如果能把这段代码禁用掉就好了
    devotenimabi
        67
    devotenimabi  
       2018-02-22 10:24:16 +08:00
    @shintendo css transform: scaleX(-1);
    shintendo
        68
    shintendo  
       2018-02-22 10:55:51 +08:00
    @devotenimabi 为什么有些字镜像了,有些字没有镜像只是顺序颠倒?
    laihaibo
        69
    laihaibo  
       2018-02-22 10:57:25 +08:00
    真 镜像
    weiyichen2011
        70
    weiyichen2011  
       2018-02-22 11:26:40 +08:00
    我手动输入的是 ilibilib.com
    于是跳转到了快视频。
    Bresh
        71
    Bresh  
       2018-02-22 11:33:53 +08:00
    哈哈哈 厉害厉害 真镜像
    unlimitedsola
        72
    unlimitedsola  
       2018-02-22 12:31:14 +08:00 via Android
    @weiyichen2011 可以再开一贴了哈哈
    /td>
    caryqy
        73
    caryqy  
       2018-02-22 18:06:45 +08:00
    @weiyichen2011
    还真是跳转到快视频了

    这个就越来越有趣了
    caryqy
        74
    caryqy  
       2018-02-22 18:08:52 +08:00
    这个域名如果是个人的话,那这人就有点搞事情了啊 2333
    ivydom
        75
    ivydom  
       2018-02-23 10:37:25 +08:00
    @xider 这都能碰到你啊 哈
    ivydom
        76
    ivydom  
       2018-02-23 10:39:23 +08:00
    楼主的昵称有点熟悉
    TimRChen
        77
    TimRChen  
       2018-02-23 12:04:25 +08:00
    transform: scaleX(-1);
    taozi00
        78
    taozi00  
       2018-02-23 12:46:32 +08:00
    @weiyichen2011 是因为你输错地址了
    deepred
        79
    deepred  
    OP
       2018-02-23 17:50:13 +08:00 via Android
    @ivydom 关注大佬蛮久了
    WellLee
        80
    WellLee  
       2019-03-01 09:38:42 +08:00
    @weiyichen2011 什么快视频?明明就是猴视频(滑稽)
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     955 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 32ms UTC 19:44 PVG 03:44 LAX 12:44 JFK 15:44
    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