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

关于 ilidilid 这个 b 站镜像网站

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

    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="/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
    域名都是镜像的牛了
    DOLLOR
        40
    DOLLOR  
       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
        65
    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 可以再开一贴了哈哈
    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   ·   实用小工具   ·   1048 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 85ms · UTC 20:30 · PVG 04:30 · LAX 12:30 · JFK 15:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.