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