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 1
我以为是克隆的那种,没想到还真的是镜像..................说不定人家只是反向代理?
|
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="/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 这个网站,
![Snipaste_2018-02-20_23-03-50.png]( https://i.loli.net/2018/02/20/5a8c38fc7106a.png) 打开了新世界的大门 |
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 1
连视频都是镜像播放的。。。。
|
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 2
这个应该很简单吧。用 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 ,新年第一个 bug
|
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
DOLLOR 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 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 }) ``` |
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 1
我的鼠标手势都被它反过来了==
|
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
你们仔细看,有些汉字本身是镜像的,有些只是顺序镜像了,字还是原来的字,这是为什么?
|
65
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 可以再开一贴了哈哈
|
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 什么快视频?明明就是猴视频(滑稽)
|