ilidilid这个 b 站镜像网站,是怎么做到在 b 站登录后,该网站也同步更新登录状态的?
很奇怪的是 ilidilid 域名下的 cookie 和 b 站的 cookie 基本是一模一样的,它是怎么获取到的?
看了下源码,b 站是有做防 iframe 的,所以 ilidilid 并不是简单的嵌套 iframe。
![]() | 1 janxin 2018-02-20 21:41:32 +08:00 view-source:http://www.ilidilid.com/ |
![]() | 2 deepred OP @janxin 它不是 iframe 一个自己域名下的 http://www.ilidilid.com/bilibili,我想知道,它怎么获取的登录状态 |
![]() | 3 dfly0603 2018-02-20 21:49:40 +08:00 via Android 据说 nginx 反代是可以跨站读取 cookies 的? 不知道哪儿看得文档里说的,错了轻拍 |
4 Va1n3R 2018-02-20 21:52:36 +08:00 ![]() 我以为是克隆的那种,没想到还真的是镜像..................说不定人家只是反向代理? |
![]() | 5 ljy2345 2018-02-20 21:53:10 +08:00 为什么是倒的。。。 |
![]() | 6 dfly0603 2018-02-20 21:55:22 +08:00 via Android 刚看了下,似乎是 ilidilid.com/bilibili 负责反代,然后 ilidilid 用 iframe 镜像? 对这方面不太熟悉 |
![]() | 8 Willjim 2018-02-20 22:12:03 +08:00 via Android 何不换一个思路,有可能就是 B 站自己弄的一个镜像站呢。(滑稽) 不过查了一下服务器在阿里云 BGP 数据中心,而且域名是在 2014 年注册的。并且首页那个拜年祭的网页并没有被镜像,所以有可能楼上说的对,先反代,然后再镜像。 |
![]() | 9 Angdo 2018-02-20 22:20:21 +08:00 反代 很多跨域禁止的错误信息 cookie 也是 bilibili |
![]() | 10 ermao 2018-02-20 22:22:56 +08:00 打开了新世界的大门。。。 |
![]() | 11 best1a 2018-02-20 22:26:10 +08:00 |
![]() | 12 deepred OP @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 站的 |
![]() | 13 Shura 2018-02-20 22:35:23 +08:00 真的是镜像啊 |
14 xider 2018-02-20 22:42:00 +08:00 |
![]() | 15 Infernalzero 2018-02-20 22:48:08 +08:00 nginx 有个 proxy_cookie_domain 设置可以替换掉 cookie 的域,反代一般都要设置这个的 |
![]() | 16 Les1ie 2018-02-20 23:05:10 +08:00 似乎还不止 ilidilid 这个网站,  打开了新世界的大门 |
![]() | 17 zuolan 2018-02-20 23:14:26 +08:00 hhh,打开新世界,我不认识汉字了,真*镜像站点。 |
![]() | 18 Biwood 2018-02-20 23:24:52 +08:00 B 站居然没做防 iframe 嵌套? |
![]() | 19 murmur 2018-02-20 23:27:51 +08:00 |
![]() | 20 murmur 2018-02-20 23:29:13 +08:00 |
![]() | 21 xavierskip 2018-02-20 23:49:16 +08:00 ![]() 连视频都是镜像播放的。。。。 |
![]() | 22 dtysky 2018-02-20 23:52:09 +08:00 via Android 内部人员私下维护的…… |
![]() | 23 mizuhashi 2018-02-20 23:57:48 +08:00 用户信息都是用 jsonp 请求 data.bilibili.com 来的,ilidilid 那个应该只是个静态站点 |
![]() | 24 nmdx 2018-02-20 23:59:37 +08:00 via Android @xavierskip 视频不是镜像的啊。。。我用的手机。。难道 flash 加了 buff? |
![]() | 25 jin5354 2018-02-21 00:06:57 +08:00 dilidili 域下面根本就没 cookie 啊。。 随便看看,B 站前后端分离做的挺干净的,登录数据好像在 http://api.bilibili.com/x/web-interface/nav 接口,这个反代啊又没有反代接口,接口还是走 bilibili 域的,那之前的 cookie 直接用就行了呗,没啥操作 |
![]() | 26 deepred OP |
![]() | 27 TANKING 2018-02-21 07:14:18 +08:00 via iPhone ![]() 这个应该很简单吧。用 php 的 file_get_content("http://www.bilibili.com");就可以获取页面了,不需要 iframe |
![]() | 29 deepred OP @jin5354 那个 domain 是 ilidilid 设置的吧,如果 ilidilid 网站下没有 cookie,登陆 ilidilid,chrome 控制台是看不到 cookie 的 |
![]() | 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 赶路回来上班,手机打字匆忙见谅 |
31 PythonAnswer 2018-02-21 10:10:22 +08:00 via Android 有意思啊有意思。 |
![]() | 32 K1W1 2018-02-21 10:21:05 +08:00 如果域名变成 com.ilidilid.www 就更完美了 |
![]() | 34 devotenimabi 2018-02-21 10:28:18 +08:00 via Android @K1W1 不是 moc ? |
![]() | 35 K1W1 2018-02-21 10:30:05 +08:00 @devotenimabi #34 ![]() |
36 Mondoz 2018-02-21 10:40:32 +08:00 真镜像站,遭不住 |
![]() | 37 rrfeng 2018-02-21 11:01:46 +08:00 via Android 标题没有镜像... |
![]() | 38 bilibiliQQ 2018-02-21 11:09:29 +08:00 css: transform: scaleX(-1); |
![]() | 39 x86 2018-02-21 12:10:12 +08:00 via iPhone 域名都是镜像的牛了 |
![]() | 40 AV1 2018-02-21 12:17:15 +08:00 这是单点登录的一种方式吧。 由于用户信息是异步跨域获取的,跨域请求带上的 COOKIE 是异域的 COOKIE,而非本域的 COOKIE,所以无需额外在本域再设置一个 COOKIE,而是直接共享异域的 COOKIE。 不过这个 JSONP 不知有没有做来源过滤的限制,如果没限制,那可能有被第三方盗取的风险。 |
![]() | 42 kindjeff 2018-02-21 12:32:00 +08:00 惊人 |
![]() | 43 xavierskip 2018-02-21 12:50:41 +08:00 via Android @nmdx 除了 flash。 |
![]() | 45 youyaang 2018-02-21 13:23:05 +08:00 手机 UA 打开这个域名有惊喜 |
![]() | 47 lrh3321 2018-02-21 14:01:22 +08:00 via Android 有点意思 |
![]() | 48 lzvezr 2018-02-21 14:09:38 +08:00 ![]() 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 }) ``` |
![]() | 50 sikariba 2018-02-21 15:01:41 +08:00 哈哈哈哈太好玩儿了 |
![]() | 51 chenset 2018-02-21 15:40:34 +08:00 笑死我了... |
![]() | 53 czdpzc 2018-02-21 16:37:31 +08:00 哈哈哈哈,真是镜像站啊... |
![]() | 54 Hconk 2018-02-21 16:43:14 +08:00 via Android |
55 paw 2018-02-21 20:17:39 +08:00 艾玛啊 真镜像站啊,点开楞了好半天感觉怎么不太对 |
56 cherishx 2018-02-21 20:27:43 +08:00 via Android |
57 cherishx 2018-02-21 20:29:27 +08:00 via Android maybe : http://www.udiab.net |
![]() | 58 yyyyyyyhb 2018-02-21 20:35:20 +08:00 ![]() 我的鼠标手势都被它反过来了== |
![]() | 59 oswuhan 2018-02-21 20:49:02 +08:00 “请问,这个反向的 b 是怎么打出来的?” |
60 f2f2f 2018-02-21 20:52:02 +08:00 网站被访问趴了么……打不开了啊 |
![]() | 61 chairuosen 2018-02-21 22:22:55 +08:00 iframe { -webkit-animation: mirror forwards 0s; } |
![]() | 62 dream7758522 2018-02-21 23:25:30 +08:00 via Android 视频是正的 |
![]() | 63 czvatqin 2018-02-22 00:15:26 +08:00 有意思... 真镜像站.. |
![]() | 64 shintendo 2018-02-22 08:42:13 +08:00 你们仔细看,有些汉字本身是镜像的,有些只是顺序镜像了,字还是原来的字,这是为什么? |
![]() | 5 wangxiaohao 2018-02-22 10:04:05 +08:00 厉害了 哈哈哈 |
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> 如果能把这段代码禁用掉就好了 |
![]() | 67 devotenimabi 2018-02-22 10:24:16 +08:00 @shintendo css transform: scaleX(-1); |
![]() | 68 shintendo 2018-02-22 10:55:51 +08:00 @devotenimabi 为什么有些字镜像了,有些字没有镜像只是顺序颠倒? |
![]() | 69 laihaibo 2018-02-22 10:57:25 +08:00 真 镜像 |
![]() | 70 weiyichen2011 2018-02-22 11:26:40 +08:00 我手动输入的是 ilibilib.com 于是跳转到了快视频。 |
![]() | 71 Bresh 2018-02-22 11:33:53 +08:00 哈哈哈 厉害厉害 真镜像 |
![]() | 72 unlimitedsola 2018-02-22 12:31:14 +08:00 via Android @weiyichen2011 可以再开一贴了哈哈 /td> |
![]() | 73 caryqy 2018-02-22 18:06:45 +08:00 |
![]() | 74 caryqy 2018-02-22 18:08:52 +08:00 这个域名如果是个人的话,那这人就有点搞事情了啊 2333 |
![]() | 76 ivydom 2018-02-23 10:39:23 +08:00 楼主的昵称有点熟悉 |
![]() | 77 TimRChen 2018-02-23 12:04:25 +08:00 transform: scaleX(-1); |
78 taozi00 2018-02-23 12:46:32 +08:00 @weiyichen2011 是因为你输错地址了 |
![]() | 80 WellLee 2019-03-01 09:38:42 +08:00 @weiyichen2011 什么快视频?明明就是猴视频(滑稽) |