ilidilid这个 b 站镜像网站,是怎么做到在 b 站登录后,该网站也同步更新登录状态的?
很奇怪的是 ilidilid 域名下的 cookie 和 b 站的 cookie 基本是一模一样的,它是怎么获取到的?
看了下源码,b 站是有做防 iframe 的,所以 ilidilid 并不是简单的嵌套 iframe。
ilidilid这个 b 站镜像网站,是怎么做到在 b 站登录后,该网站也同步更新登录状态的?
很奇怪的是 ilidilid 域名下的 cookie 和 b 站的 cookie 基本是一模一样的,它是怎么获取到的?
看了下源码,b 站是有做防 iframe 的,所以 ilidilid 并不是简单的嵌套 iframe。
|
janxinFeb 20, 2018
1
view-source:http://www.ilidilid.com/
|
|
2
@janxin 它不是 iframe 一个自己域名下的 http://www.ilidilid.com/bilibili,我想知道,它怎么获取的登录状态
|
|
dfly0603Feb 20, 2018 via Android
3
据说 nginx 反代是可以跨站读取 cookies 的?
不知道哪儿看得文档里说的,错了轻拍 |
|
4
我以为是克隆的那种,没想到还真的是镜像..................说不定人家只是反向代理?
|
|
ljy2345Feb 20, 2018
5
为什么是倒的。。。
|
|
dfly0603Feb 20, 2018 via Android
6
刚看了下,似乎是 ilidilid.com/bilibili 负责反代,然后 ilidilid 用 iframe 镜像?
对这方面不太熟悉 |
|
WilljimFeb 20, 2018 via Android
8
何不换一个思路,有可能就是 B 站自己弄的一个镜像站呢。(滑稽)
不过查了一下服务器在阿里云 BGP 数据中心,而且域名是在 2014 年注册的。并且首页那个拜年祭的网页并没有被镜像,所以有可能楼上说的对,先反代,然后再镜像。 |
|
AngdoFeb 20, 2018
9
反代 很多跨域禁止的错误信息 cookie 也是 bilibili
|
|
ermaoFeb 20, 2018
10
打开了新世界的大门。。。
|
|
best1aFeb 20, 2018
11
|
|
12
@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 站的 |
|
ShuraFeb 20, 2018
13
真的是镜像啊
|
|
xiderFeb 20, 2018
14
|
|
InfernalzeroFeb 20, 2018
15
nginx 有个 proxy_cookie_domain 设置可以替换掉 cookie 的域,反代一般都要设置这个的
|
|
Les1ieFeb 20, 2018
16
似乎还不止 ilidilid 这个网站,
 打开了新世界的大门 |
|
zuolanFeb 20, 2018
17
hhh,打开新世界,我不认识汉字了,真*镜像站点。
|
|
BiwoodFeb 20, 2018
18
B 站居然没做防 iframe 嵌套?
|
|
murmurFeb 20, 2018
19
|
|
murmurFeb 20, 2018
20
|
|
21
连视频都是镜像播放的。。。。
|
|
dtyskyFeb 20, 2018 via Android
22
内部人员私下维护的……
|
|
mizuhashiFeb 20, 2018
23
用户信息都是用 jsonp 请求 data.bilibili.com 来的,ilidilid 那个应该只是个静态站点
|
|
nmdxFeb 20, 2018 via Android
24
@xavierskip 视频不是镜像的啊。。。我用的手机。。难道 flash 加了 buff?
|
|
jin5354Feb 21, 2018
25
dilidili 域下面根本就没 cookie 啊。。
随便看看,B 站前后端分离做的挺干净的,登录数据好像在 http://api.bilibili.com/x/web-interface/nav 接口,这个反代啊又没有反代接口,接口还是走 bilibili 域的,那之前的 cookie 直接用就行了呗,没啥操作 |
|
26
|
|
27
这个应该很简单吧。用 php 的 file_get_content("http://www.bilibili.com");就可以获取页面了,不需要 iframe
|
|
29
@jin5354 那个 domain 是 ilidilid 设置的吧,如果 ilidilid 网站下没有 cookie,登陆 ilidilid,chrome 控制台是看不到 cookie 的
|
|
jin5354Feb 21, 2018 via iPhone
30
@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 赶路回来上班,手机打字匆忙见谅 |
|
PythonAnswerFeb 21, 2018 via Android
31
有意思啊有意思。
|
|
K1W1Feb 21, 2018
32
如果域名变成 com.ilidilid.www 就更完美了
|
|
devotenimabiFeb 21, 2018 via Android
34
@K1W1 不是 moc ?
|
|
K1W1Feb 21, 2018
35
@devotenimabi #34
,新年第一个 bug |
|
MondozFeb 21, 2018
36
真镜像站,遭不住
|
|
rrfengFeb 21, 2018 via Android
37
标题没有镜像...
|
|
bilibiliQQFeb 21, 2018
38
css:
transform: scaleX(-1); |
|
x86Feb 21, 2018 via iPhone
39
域名都是镜像的牛了
|
|
AV1Feb 21, 2018
40
这是单点登录的一种方式吧。
由于用户信息是异步跨域获取的,跨域请求带上的 COOKIE 是异域的 COOKIE,而非本域的 COOKIE,所以无需额外在本域再设置一个 COOKIE,而是直接共享异域的 COOKIE。 不过这个 JSONP 不知有没有做来源过滤的限制,如果没限制,那可能有被第三方盗取的风险。 |
|
kindjeffFeb 21, 2018
42
惊人
|
|
youyaangFeb 21, 2018
45
手机 UA 打开这个域名有惊喜
|
|
lrh3321Feb 21, 2018 via Android
47
有点意思
|
|
48
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 }) ``` |
|
sikaribaFeb 21, 2018
50
哈哈哈哈太好玩儿了
|
|
chensetFeb 21, 2018
51
笑死我了...
|
|
czdpzcFeb 21, 2018
53
哈哈哈哈,真是镜像站啊...
|
|
HconkFeb 21, 2018 via Android
54
|
|
pawFeb 21, 2018
55
艾玛啊 真镜像站啊,点开楞了好半天感觉怎么不太对
|
|
cherishxFeb 21, 2018 via Android
56
|
|
cherishxFeb 21, 2018 via Android
57
maybe :
http://www.udiab.net |
|
58
我的鼠标手势都被它反过来了==
|
|
oswuhanFeb 21, 2018
59
“请问,这个反向的 b 是怎么打出来的?”
|
|
f2f2fFeb 21, 2018
60
网站被访问趴了么……打不开了啊
|
|
chairuosenFeb 21, 2018
61
iframe { -webkit-animation: mirror forwards 0s; }
|
|
dream7758522Feb 21, 2018 via Android
62
视频是正的
|
|
czvatqinFeb 22, 2018
63
有意思...
真·镜像站.. |
|
shintendoFeb 22, 2018
64
你们仔细看,有些汉字本身是镜像的,有些只是顺序镜像了,字还是原来的字,这是为什么?
|
|
wangxiaohaoFeb 22, 2018
65
厉害了
哈哈哈 |
|
hyhy01Feb 22, 2018
66
<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> 如果能把这段代码禁用掉就好了 |
|
devotenimabiFeb 22, 2018
67
@shintendo css transform: scaleX(-1);
|
|
shintendoFeb 22, 2018
68
@devotenimabi 为什么有些字镜像了,有些字没有镜像只是顺序颠倒?
|
|
laihaiboFeb 22, 2018
69
真 • 镜像
|
|
weiyichen2011Feb 22, 2018
70
我手动输入的是 ilibilib.com
于是跳转到了快视频。 |
|
BreshFeb 22, 2018
71
哈哈哈 厉害厉害 真镜像
|
|
unlimitedsolaFeb 22, 2018 via Android
72
@weiyichen2011 可以再开一贴了哈哈
|
|
caryqyFeb 22, 2018
73
|
|
caryqyFeb 22, 2018
74
这个域名如果是个人的话,那这人就有点搞事情了啊 2333
|
|
ivydomFeb 23, 2018
76
楼主的昵称有点熟悉
|
|
TimRChenFeb 23, 2018
77
transform: scaleX(-1);
|
|
taozi00Feb 23, 2018
78
@weiyichen2011 是因为你输错地址了
|
|
WellLeeMar 1, 2019
80
@weiyichen2011 什么快视频?明明就是猴视频(滑稽)
|