#1 - 2021-7-18 12:45
拿月亮自刎 (情更怯)
注意 2022-11-03
最近我写脚本时,发现 Bangumi 掉登录。

排查结论: 使用 【GM_xmlhttpRequest】请求Bangumi 的用户脚本会导致本楼的方法失效。

原因:  假设你设置的UA 是 chrome97, GM_xmlhttpRequest发起请求时默认使用的浏览器的UA,比如为 chrome107。chrome97 和 chrome107的变化有几率导致 Bangumi 掉登录。

---------------------------------------分割线------------------------------------------

测试
鉴于楼下有质疑这个方法的童鞋,我做了一下测试。使用的 Firefox 测试。 UA 使用的 Chrome。

按照下面的方法我设置好了 UA,并成功登录 Bangumi。见截图


然后我去 Firefox 的 ftp 下载了 beta 版本,并设置配置文件为之前的配置



再次启动后依然能够正常访问 Bangumi,登录信息仍然存在。

测试使用本地代码访问

源码地址:
https://github.com/zhifengle/blo ... src/bangumi-test.ts

有些网站在检测用户身份的时候用到了 HTTP 请求头 User-Agent
当浏览器自动升级后,User-Agent 发生变化,导致用户认证失败,需要重新登录。
所以保持登录状态的一个小技巧就是保持 User-Agent 不变。
对于 Cookie 过期的需要重新登录的问题,这里就不讨论了。

我使用的这个浏览器扩展: Header Editor

当然使用其它扩展也行比如: User-Agent Switcher

关键点就是保持网站 User-Agent 不变就行。

以 Header Editor 为例子
添加规则页面

匹配规则填写: bgm\.tv|bangumi\.tv|chii\.in
可以根据需要增加其它网站比如我的规则: bgm\.tv|kfmax\.com|south-plus\.net
绯月、南+ 也是 User-Agent 变动后会掉登录的网站

头名称:  user-agent
头内容:  Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.164 Safari/537.36

上面的头内容是我自己的,头内容根据实际填写。
可以通过 F12 利用控制台,输入  copy(navigator.userAgent)   复制。


利用 Header Editor 重定向 Bangumi 域名

HE(Header Editor) 的用途还有很多,图片防盗链、重定向、控制网站响应语言等,这里再举个我用到的例子。
外部访问 Bangumi 时,重定向为常用的域名。

我常用的是 bgm.tv 这个域名
匹配规则:

^https?://(doujin.)?(?:bangumi|chii).(?:tv|in)/(.*$)

重定向至:

https://$1bgm.tv/$2


如果你是使用的  bangumi.tv 这个域名
匹配规则:

^https?://(doujin.)?(?:bgm|chii).(?:tv|in)/(.*$)

重定向至:

https://$1bangumi.tv/$2


chii.in 这个域名就不举例了,匹配规则取消 chii.in ,重定向规则改成 chii.in
#2 - 2021-7-18 12:53
(天の光は全て星だ)
感谢,马克(bgm24)
#3 - 2021-7-18 12:55
(私はすべての過去があって 今の自分になるだから ... )
感谢(bgm25)
#4 - 2021-7-18 13:18
(是萌豚哒❗)
mark
#5 - 2021-7-18 13:23
(風を抜き去って 届かせるこの思い)
mark
#6 - 2021-7-18 15:52
(DD雷达搜寻中...?)
(bgm38)我一直自定义ua为mac的chrome 一样该掉的时候都会掉
#6-1 - 2021-7-18 15:57
拿月亮自刎
按理说 IP 和 UA 固定后,应该不会经常掉登录信息了。除非服务器主动清理  (bgm38)
#6-2 - 2021-7-18 19:47
頂上ノ月🌙
拿月亮自刎 说: 按理说 IP 和 UA 固定后,应该不会经常掉登录信息了。除非服务器主动清理  
我win/mac双系统 一换另一个系统bgm登录必掉(bgm38)
#7 - 2021-7-18 17:37
quantumult和clash好像也可以设置ua请求,您知道如何设置吗?
#7-1 - 2021-7-18 19:05
拿月亮自刎
没研究过。原理应该都是 匹配 URL 后,设置对应的UA
#7-2 - 2021-7-18 23:24
橘枳橼
有 HTTPS 加密的话,任何中间人工具不破坏加密无法修改。
#7-3 - 2021-7-19 09:43
拿月亮自刎
Εκκολαπτήριο 说: 有 HTTPS 加密的话,任何中间人工具不破坏加密无法修改。
HTTPS 也是可以做到修改请求的。前提是客户端要添加新的证书,来实现 MITM。像常见的抓包工具 Fiddler 和 Charles
#7-4 - 2021-7-19 11:54
橘枳橼
拿月亮自刎 说: HTTPS 也是可以做到修改请求的。前提是客户端要添加新的证书,来实现 MITM。像常见的抓包工具 Fiddler 和 Charles
我说得很完整;这就是「破坏加密」
HTTPS Everywhere 以前还有证书验证,如果证书与 EFF 的服务器上的不匹配则拒绝接受此链接。不过因为现在 CDN 边缘计算比较广泛(每个边缘结点各自生成极短时效证书),此功能被移除了。
#7-5 - 2021-7-19 12:20
石原英里華(常盤るる)
Εκκολαπτήριο 说: 我说得很完整;这就是「破坏加密」
HTTPS Everywhere 以前还有证书验证,如果证书与 EFF 的服务器上的不匹配则拒绝接受此链接。不过因为现在 CDN 边缘计算比较广泛(每个边缘结点各自生...
感谢。我已经添加了mitm证书和主机名。
#7-6 - 2022-6-18 02:31
童心音乐会
目前并无支持 mitm 的 clash 或其变体
#7-7 - 2022-6-18 03:14
石原英里華(常盤るる)
童心音乐会 说: 目前并无支持 mitm 的 clash 或其变体
这是很久以前的帖子了!这是iPhone,所以使用了quantumult x,它可以截取、修改response-header,其中包含USER-AGENT。可惜的是,它似乎并不完善,只实现了response-body的功能。可喜的是,我已经不需要这项功能。在Android上,Adguard可以替代它们进行一次mitm。
#8 - 2021-7-18 17:43
(神は嫌気性だった。)
感谢ww
#9 - 2021-7-18 18:23
感谢,mark
#10 - 2021-7-18 18:30
(生命的意义由自己创造)
mark
#11 - 2021-7-18 18:33
(星。。星爆气流斩!)
app掉登录有办法吗(bgm39)
#11-1 - 2021-7-18 19:17
拿月亮自刎
正如上面说的,可能可以通过代理层进行设置,不过我没有研究过
仔细想了一下 App 和网页端不是用的一套东西,我搞错了。
#12 - 2021-7-18 18:42
(いつでも微笑みを)
不行,该掉还掉
重启一次浏览器掉一次(bgm38)
#12-1 - 2021-7-18 19:09
拿月亮自刎
我自己写的小工具,设置好 UA 和 cookie 没有出现过掉登录。重启浏览器后掉应该就是 UA 之类的变了。如果确认重启后,发起请求的 UA 没有变化,那么有点奇怪
#13 - 2021-7-18 18:45
(天生万物以养人,人无一物以报天)
在用的chromium分支7个月没有更新了,完全没有此类烦恼(bgm38)
#13-1 - 2021-7-18 19:43
若荼泱
您这是哪个神仙平台
#13-2 - 2021-7-18 19:45
bangumi大西王
若荼泱 说: 您这是哪个神仙平台
cent browser,我目前找到的唯一一个还提供禁用DirectWrite选项的chromium系浏览器了
#13-3 - 2021-7-18 19:46
頂上ノ月🌙
若荼泱 说: 您这是哪个神仙平台
盲猜cent(bgm36)
#13-4 - 2021-7-18 19:46
bangumi大西王
🍋LautlosP🍋 说: 盲猜cent
确实(bgm38)
#13-5 - 2021-7-18 19:48
頂上ノ月🌙
Trim21 说: 确实
怎么还不更新啊(bgm39)
#13-6 - 2021-7-18 19:51
bangumi大西王
🍋LautlosP🍋 说: 怎么还不更新啊
开发者不发新版啊
而且也没啥bug。。。

(我就是web生态的分裂者)
#14 - 2021-7-18 20:00
(V1046-R MAHORO)
所以为什么UA变化要掉登录?我目前为止只见过国内网站这么干
#14-1 - 2021-7-18 20:12
拿月亮自刎
因为使用 UA 来进行用户认证信息的计算了。
好像使用 PHP 为技术栈的网站很多都是基于 UA 进行用户的认证,可能是以前遗留下来的开发方式,大家都沿用学习的这套技术栈。 上面我提到的  绯月、南+ 都是 PHP, Bangumi 后台据我了解也是 PHP。
新的网站一般还是使用 token 认证居多。
#15 - 2021-7-18 21:01
感谢!mark!(bgm25)
之前听说过类似改 Header 的插件,但是一直没想起来叫什么来着
#15-1 - 2021-7-25 22:11
NekoNull
edge更新了几个版本之后,又开始掉了(bgm38)
#15-2 - 2021-7-25 22:22
拿月亮自刎
NekoNull 说: edge更新了几个版本之后,又开始掉了
(bgm38) 我用的 Chrome 暂时没掉登录。
顶楼测试的 Firefox,但是自己不再使用 Firefox 作为主力浏览器,也没做长期测试。
#15-3 - 2022-6-9 04:10
喵䁩
NekoNull 说: edge更新了几个版本之后,又开始掉了
+1。不过最近几天好像又不怎么掉了
#16 - 2021-7-18 21:01
在拦截器上,重定向域名和ua需要分开操作,这是重定向域名,您知道我应该选择302还是307吗?


这是ua设置,但是我没有看懂...
#16-1 - 2021-7-18 21:27
石原英里華(常盤るる)
我看了一下对302和307的介绍,除了在登陆时可能有区别,其余的问题应该可以忽略。
#16-2 - 2021-7-18 23:00
拿月亮自刎
修改请求头那个匹配的 URL 直接填写你现在用的 Bangumi 域名。至于替换那栏我没用过这个软件,猜测填写  User-Agent: Your-UA-xxx
#17 - 2021-7-19 07:55
我之前也觉得要固定ua,结果还是掉(bgm38)
#17-1 - 2021-7-19 09:38
拿月亮自刎
顶楼我做了测试。测试结果是更新浏览器后,保证 IP 和 UA 一致, Bangumi 并没有丢失登录信息。
#17-2 - 2021-7-20 15:43
可憐ソース
拿月亮自刎 说: 顶楼我做了测试。测试结果是更新浏览器后,保证 IP 和 UA 一致, Bangumi 并没有丢失登录信息。
你得放一段时间,然后就掉了(bgm38)
#18 - 2021-7-19 12:35
(ダメ人間)
感谢 mark
#18-1 - 2021-8-29 16:57
et
+1
#19 - 2021-8-6 09:41
(請注意UID)
手機瀏覽器切桌面版時會掉登陸的原因相同吧
#20 - 2021-8-24 13:10
Bangumi掉登录的机制一直是个谜,我有时候仅仅是清除浏览器缓存(未勾选 清除cookies)就掉登录了
#21 - 2021-8-29 21:16
感谢 mark
#22 - 2022-1-4 16:49
删除了回复
#23 - 2022-1-4 16:49
马克马克
#24 - 2022-5-15 09:51
mark
#25 - 2022-5-17 10:04
mark
#26 - 2022-5-28 14:42
(暴躁地路过)
mark
#27 - 2022-6-9 02:08
删除了回复
#28 - 2022-6-9 03:12
(不小心点到星星于是变成レイにゃん★ ...)
mark
#29 - 2022-6-14 11:42
按你说的来一直没掉登录,但不知道为什么昨天今天连掉两次(bgm28)
#30 - 2022-8-13 23:10
mark
#31 - 2022-8-13 23:17
网页没问题,APP倒是老掉
#32 - 2022-8-14 00:43
(光是活着就已经很累了)
mark
#33 - 2022-8-14 00:46
(Turn on the moonlight.)
mark,感谢
#34 - 2022-10-30 20:33
mark
#35 - 2023-2-3 11:07
图片炸了,匹配url用的是什么规则来着。。(bgm38)
#35-1 - 2023-2-3 12:57
拿月亮自刎
图片修复了,顶楼写了规则啊。
#35-2 - 2023-2-4 03:44
长濑暗
拿月亮自刎 说: 图片修复了,顶楼写了规则啊。
其实我问的是匹配类型用正则还是域名还是域名前缀,文字里没写但图片里有。多谢。
#36 - 2023-2-3 11:12
mark
#37 - 2023-2-3 19:06
#38 - 2023-2-4 03:57
(ドラマチックな死は、僕らにはふさわしくありませんよ)
mark
#39 - 2023-2-4 11:46
(没有想好要成为什么样的大人)
#40 - 2023-2-12 18:26
之前chrome用这个方法基本没掉过,最近换了edge,这法子却不管用了(bgm38)
#40-1 - 2023-2-12 20:23
拿月亮自刎
可以F12打开控制台--->网络,查看请求的报文的 “user-agent”是不是和设置的一模一样
如果是一样的,并且频繁掉登录。我也不知道原因 (bgm38)

自测了一下,我这里 Edge 的请求的“user-agent”和设置的是一样的。使用的时间较短,没出现掉登录。
#41 - 2023-2-16 13:55
(漫畫是塑造每個人夢想的東西)
(bgm38)献上我的膝盖 困扰好久了
#42 - 2023-4-21 11:51
感谢!
#43 - 2023-4-21 11:57
(你所love的,就是你的live)
mark
#44 - 2023-4-21 19:39
(My Little Pony~)
Mark
#45 - 2023-4-21 20:19
(宽以律己,严以待人)
先试试再说,之前有一次好像是浏览器更新后掉的登录
#46 - 2023-7-6 23:15
chrome一直掉登录试试看。
#47 - 2023-7-16 23:33
感谢,解决了好久的问题
#48 - 2023-8-3 00:41
晕,手机咋办,也是老掉登录。就这个网站老是掉
#49 - 2024-2-18 19:32
mark
#50 - 2024-2-18 19:36
(蛤?)
感恩,mark